我想運行一個函數的幾個事件之後發生與事件偵聽器,如:Javascript:如何在多個事件發生後執行代碼?
listenTo(eventA occurred && eventB occured && eventC occurred) {
do something.
}
我怎樣才能做到呢?
我想運行一個函數的幾個事件之後發生與事件偵聽器,如:Javascript:如何在多個事件發生後執行代碼?
listenTo(eventA occurred && eventB occured && eventC occurred) {
do something.
}
我怎樣才能做到呢?
您應該爲每個事件添加事件偵聽器,如果發生事件,則應將其存儲在某個可在每個事件處理程序中訪問的標誌變量中,然後檢查所有標誌是否爲真doSomething
。您可以使用map來代替標誌變量,還可以創建一些幫助器函數,以便在發生所有事件時收到所有事件和回調回調,這一切都適用於您的實現方式。 我don'the認爲你可以找到更好的方法完成這項任務
'承諾'真的是現在這樣做的正確方式 – Alnitak
這是正確的我也想過,但由於瀏覽器的支持和理解的複雜性,我建議從包裝功能開始,以良好的界面。 –
var p1 = new Promise(function(resolve, reject) {
listenTo(eventA, resolve);
});
var p2 = new Promise(function(resolve, reject) {
listenTo(eventB, resolve);
});
var p3 = new Promise(function(resolve, reject) {
listenTo(eventC, resolve);
});
Promise.all([p1, p2, p3]).then(function(value) {
// all three events are triggered.
doSomething...
});
你可以使用承諾試試。看看藍鳥。 – baao