我對承諾的總數爲n00b,並希望更多地使用它們,但需要一點幫助。正確在for循環中使用Javascript承諾
for (var key in list){
DoSomething(list[key])
.then(function(){
console.log(key);
});
}
function DoSomething(item){
return new Promise(function(resolve, reject){
resolve();
});
}
的console.log(key)
部分不會工作,因爲變量key
在外側範圍改性:取代碼下面的示例。一種解決方法可能是resolve
承諾key
值,但不幸的是,DoSomething方法是共享庫的一部分。
for (var key in list){
DoSomething(list[key], key)
.then(function(key){
console.log(key);
});
}
function DoSomething(item, key){
return new Promise(function(resolve, reject){
resolve(key);
});
}
是否有任何其他方式讓for循環console.log(key)
正常工作?
... –