LoginSignup
1
0

More than 5 years have passed since last update.

なんだかんだで自分で一番使ってる自分のnpmモジュール

Last updated at Posted at 2017-10-06

npm
github

ただオブジェクトにイベント処理のためのmixinを追加するだけのライブラリ。
、、なんだけど結局実際のプロダクトで一番使ってる気がした(もしかしたら同じようなのいっぱいあるんかもしれないけど)

今のフロントで意識しないといけん事多すぎるので、非同期処理のマネージャはできるだけ自分の理解の範疇においておきたかったってのがある。
ここに全量は書かないけど
on
off
one
has
emit
的ないっぱん的なメソッドに加えて
has
hasAndOn
hasAndOne
的な「もし1度でもイベントトリガされてたら」的なものも準備した。
(ただhas系の場合はやたらオブジェクトがメモリに保持されるのを防ぐためemit時に渡されたデータはリスナ側には現状渡してない)

import EventManager from 'dd-event-manager';

class Hoge() {
  constructor() {
    new EventManager(this);
  }

  async init() {

    // 「何かとっても大事な非同期」処理
    this.大事な変数 = await someAsyncFunction();
    this.emit('init');
  }

  ready() {
    return new Promise(resolve => {
      this.hasAndOne('init').then(resolve);
    });
  }
}

window.hoge = new Hoge();
hoge.init();

async function someOtherFunction() {
  await window.hoge.ready();

  // 「何かとっても大事な非同期」の後でやりたい事
  console.log('${window.hoge.大事な変数}');
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0