軽量なイベント管理システム
npm i @dependahub/event
import {event} from '@dependahub/event';
// イベントの購読 A
const subscriptionA = event.subscribe('eventName', async payload => {
// 何らかの処理A
});
// イベントの購読 B
const subscriptionB = event.subscribe('eventName', async payload => {
// 何らかの処理B
});
// イベントの購読解除
subscriptionA.unsubscribe();
// イベントの発火
await event.push('eventName', payload); // subscriptionB のみ発火
// イベントの削除
event.remove('eventName');
await event.push('eventName', payload); // 何も発火しません
イベント名を指定して購読登録します。イベント発火時には第2引数のコールバック関数が実行されます。
const subscription = event.subscribe('eventName', async payload => {
// イベント発火時に実行する処理
console.log('イベントを受信しました:', payload);
});
subscribe()の戻り値から購読を解除できます。
// 購読を解除
subscription.unsubscribe();
指定したイベント名に対して、データ(payload)を送信します。登録されているすべてのコールバック関数が非同期に実行されます。
// payloadには任意のデータを渡せます
const payload = { message: 'こんにちは', timestamp: Date.now() };
await event.push('eventName', payload);
指定したイベント名に関連するすべての購読を削除します。
// eventNameに登録されているすべての購読が削除されます
event.remove('eventName');
こちらのリポジトリは MITライセンス の元にオープンソースで作成されています。