0
我想要做的事:得到一個項目列表(從API),請求每個項目的狀態。並呼籲應該代表我的項目的全球狀態的回調。非承諾
如何,我試圖做到這一點:第一承諾得到的所有項目,並在第一然後我想呼籲每個項目getProjectStatus誰應該得到的地位。我想我的第二個然後等我完成了迭代(我嘗試了很多不同的事情,但我的第二個總是在之前被調用)。我不知道這是否是一個很好的承諾...
var that = this;
var options = { url : this.host + "projects", json : true }
var finalStatus = "SUCCESS";
// first promises
return request(this.options)
.then(function(projects) {
projects.forEach(function(element, index, array) {
// second promises
that.getProjectStatus(element.id, function(status){})
.then(function(status) {
if(status != "SUCCESS)
{
finalStatus = "FAILURE";
}
});
})
})
.then(function(){
callback(finalStatus)});
的可能的複製[如何所有的JavaScript ES6承諾後運行得到解決(http://stackoverflow.com/questions/26634654/how-to-run-all-javascript-es6-promises-are-resolved) – Mathletics
我認爲這個問題有很多版本,但這是我能找到的第一個版本。無論如何,這在文檔中僅作爲示例在每個Promise實現中進行了介紹。 – Mathletics
嘿Mathletics,我意識到Promise.all,但我沒有正確使用它,我沒有找到在我的重疊中使用它的方式(正如我所說我試圖在第二秒中實現它)。謝謝 – rad