我一直在尋找,並找到了一些變化,但沒有找到任何符合我的需求。下面是我想弄清楚的僞代碼:我不明白,你不能阻止同步碼等待異步和我嘗試了好幾種變化等待x個承諾完成以產生新承諾的良好模式是什麼?
var itemsUploading = 0;
const maxUploads = 10;
function uploadAll(items){
var promises = [];
items.forEach(function(item){
/* Here is where I want to wait for itemsCurrentlyUploading < maxUploads */
itemsUploading++;
promises.push(upload(item));
}
return Promise.all(promises);
}
function upload(item){
return new Promise(function(resolve, reject){
/*Item upload logic here */
})
.then(function(response){
itemsUploading--;
});
}
。我認爲setTimeout
是我可以用來做到這一點的東西,但我不太明白必要的邏輯。任何和所有的幫助將不勝感激,如果還有其他事情可以編輯,以幫助某人更好地理解問題,請讓我知道,謝謝!
你需要閱讀關於鏈接Promise和Deferred調用,這裏的關鍵字是'.then()' – rorschach
看看[this](http://stackoverflow.com/a/39197252/1048572)或[this ](http://stackoverflow.com/a/38778887/1048572) – Bergi