我無法找到解決方案。下面是我在做什麼:承諾與async.each無法正常工作
async.each(bottles, function(bottle) {
// set substance quantity to 0
updateQuantity(bottle[constant.SUBSTANCE_ID], 0)
.then(function() {
bottle[constant.EXPIRY] = expiry;
bottle[constant.IS_AVAILABLE] = true;
updateRecord(bottle)
.then(function() {
console.log('Updated');
},
function() {});
}, function() {});
}, function() {
console.log('Finished');
});
console.log('Done');
的方法updateQuantity和updateRecord返回承諾和使用Knex更新中也返回一個承諾的背景。 我想上面的代碼的輸出是:
Updated
Updated
Finished
Done
但我得到的輸出是:
Done
Updated
Updated
所以,async.each的回調不工作和代碼不等待async.each完成。
'async.js' * does not not with promise。不要使用它。 – Bergi
爲什麼使用這些無操作功能? – naomik
@Bergi除了async.js以外的任何建議? – Ashutosh