“发布”方法能否将每个参数传递给适当的函数调用?我研究的所有示例都显示了将参数传递给所有事件订阅者的“发布”方法。如果不是所有的订户都使用相同的参数怎么办?
let pubsub = {
subscribe : function(evt, func, args) {
if (!events[evt]) {
events[evt] = [];
};
let token = (++subUid).toString();
events[evt].push({
token : token,
func : func
});
return token;
},
unsubscribe : function(token) {
for (let m in events) {
if (events[m]) {
for (let i = 0, j = events[m].length; i < j; i++) {
if (events[m][i].token === token) {
events[m].splice( i, 1 );
return token;
};
};
};
};
return this;
},
publish : function(evt, args) {
if (!events[evt]) {
throw ''+evt+' doesn\'t exist!';
};
const subscribers = events[evt];
const len = (subscribers) ? subscribers.length : 0;
for (let i = 0; i < len; i++) {
subscribers[i].func(evt, args); /* SAME ARGUMENT(S) FOR ALL SUBSCRIBERS!!? */
};
return this;
}
};