2015-12-11 71 views
-1

就像你上面看到的那樣,當事件pause觸發我要以異步的方式做一堆操作。但如果我這樣做,我認爲addon的回調將永遠不會返回。回調中的異步操作

//(...) 
client.on('stream', function(stream, meta) { 
    //(....) 
    stream.on('pause', function() { 
     addon.calculate_results_async(stream, client.id, function(results, stream) { 
      stream.write(results); //send the results 
     }); 
    }); 
}); 

首先,我是對的插件beahviour?第二,如果我是正確的,在這種情況下我該如何calculate_results_async

+1

你測試,看看你是正確的行爲?它是拋出一個錯誤還是不尋常的結果? – TbWill4321

+0

@ TbWill4321我還沒有測試過。我試圖在改變我所做的事情之前預測此實現的行爲。 – carduh

回答

2

在異步操作中似乎發生錯誤。

Promise.all([your stuff]).then(function() { 
    // all loaded 
}, function() { 
    // one or more failed 
}); 

或者

你可能忘了解決您的異步承諾

var promise = new Promise(function(resolve, reject) { 
    // do a thing, possibly async, then… 

    if (/* everything turned out fine */) { 
    resolve("Stuff worked!"); 
    } 
    else { 
    reject(Error("It broke")); 
    } 
});