[英]Promise.all doesn't wait for new Promise to resolve
這是使用nodejs和jquery的spa的一部分。 getToday功能控制台記錄的是“結果:”,因此整個過程應該記錄控制台日志1,然后是結果:,然后是2,但是它並不等待getToday完成。 輸出為1、2,結果。
app.get('/incidents/all', function(req, res){
let data = globals.dataTopdesk;
let output = {}
Promise.all([
data.length,
calculateProcessingStatus(data),
calculateOnHold(data),
calculateOpen(data),
calculateStatus(data),
calculateCallType(data);
])
.then(function(values) {
output.all = values[0]
output.processingStatus = values[1],
output.onHold = values[2],
output.open = values[3],
output.status = values[4],
output.callType = values[5]
return output;
})
.then(function(output) {
console.log('1')
return new Promise(resolve=> {
output.today = getToday(db, output)
resolve(output);
})
})
.then(function(output) {
console.log('2')
res.send(output)
})
.catch (function(err) {
res.send('failed: ' + err)
})
})
為什么這不等待新的Promise解決?
如果getToday
是異步的並返回一個promise,則將其添加到鏈中,而不用多余的promise包裹,這看起來似乎沒有用:
return getToday().then(data => { output.today = data; return output; });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.