我希望关闭一个函数,但只有当两个或多个事件被触发时。是否有内置的方法来做到这一点?
这里有一个事件:
setup.on('api routes ready', function () {
console.log('Yay!');
});
我该怎么做:
setup.on('api routes ready', 'website routes ready', function () {
console.log('Yay!');
});
任何想法都会摇摆不定!
答案 0 :(得分:3)
最好使用具有适当功能的async等库。
通过这种方式,您可以选择是并行还是串行执行功能,如果并行执行,则可以定义仅在所有功能完成后运行的回调。
虽然@ HeadCode的代码可以使用,但它不能很好地扩展并且很容易出错。
答案 1 :(得分:1)
这是(未经测试的)开始。
var waitForIt = (function(){
var api_ready = false;
var web_ready = false;
return function(event){
if (event === 'api routes ready'){
api_ready = true;
}
if(event === 'web routes ready'){
web_ready = true;
}
if(api_ready && web_ready){
console.log('Yay!');
}
}
})();
setup.on('api routes ready', function () {
waitForIt('api routes ready');
});
setup.on('web routes ready', function () {
waitForIt('web routes ready');
});