Skip to content

dependahub/event

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js Version XO code style

event

軽量なイベント管理システム

Install

npm i @dependahub/event

Example

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); // 何も発火しません

Features

イベントの購読

イベント名を指定して購読登録します。イベント発火時には第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ライセンス の元にオープンソースで作成されています。

About

軽量イベントシステム

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published