Pot.js と PotLite.js で利用可能。
attach* によって登録したシグナルを実行します。
引数 object と signalName に一致するシグナルがすべて実行されます。
実行される関数には第三引数~以降に任意の引数が渡せます。
戻り値は Pot.Deferred インスタンス になり、then() などで次の処理に繋げることができます。
これは、シグナルが非同期で実行され Deferred を返した時などでも整合性をとるためです。
Pot.globalize() が適応されている場合、Pot.signal() が signal() で実行できます。
Pot.Deferred インスタンスが返ります。
var MyObj = {};
// 独自のシグナルを登録
var handler = Pot.attach(MyObj, 'clear-data', function() {
// プロパティの初期化など
MyObj.data = null;
MyObj.time = null;
});
Pot.attach(window, 'load', function() {
// 初期化するシグナルを送信
Pot.signal(MyObj, 'clear-data');
// リセットボタンを押した時にもクリアするよう設定
Pot.attach('#reset', 'click', function() {
Pot.signal(MyObj, 'clear-data');
});
// 既存の処理など
myLoadProcess();
//...
});