function Observer() {
this.fns = [];
}
Observer.prototype = {
subscribe : function(fn) {
this.fns.push(fn);
},
unsubscribe : function(fn) {
this.fns = this.fns.filter(
function(el) {
if ( el !== fn ) {
return el;
}
}
);
},
fire : function(o, thisObj) {
var scope = thisObj || window;
this.fns.forEach(
function(el) {
el.call(scope, o);
}
);
}
};
var fn = function() {};
var o = new Observer;
o.subscribe(fn);
o.fire('here is my data');
o.unsubscribe(fn);
この背後にある概念全体を理解することはできません。このパターンをプロジェクトに実装したいと考えています。フォームが送信され、WebService を呼び出して応答を返すビューがあります。
これを単純な要求と応答であるプロジェクトに実装する必要がある場合...どうすればよいでしょうか? 変更があったときにオブザーバーに通知することを理解しています...APIにリクエストを送信すると、応答が返されます...今度は、監視可能なパターンを介してビューに通知されるようにします