[英]Promises with res.send
在 promise 之后返回響應時出現以下問題:
let emailSent = new Promise((resolve, reject) => {
array.forEach(async (item, i, array) => {
//asynchronous code for send emails
if (index === array.length -1) resolve();
}
})
emailSent.then(() => {
res.status(201).send({
message: 'Email sent.',
status: 201,
})
}
在瀏覽器中,響應永遠不會返回。 在 promise 之后返回 res.send 的最佳方式是什么?
在不知道您正在使用的確切代碼的情況下,因為看起來您已經修剪了很多,我懷疑您有多個異步 function 調用,您正在嘗試並行執行。
對於類似的事情,您應該將每個異步調用 map 放入一個承諾列表中,然后等待它們全部在一個 promise 和Promise.all()
中解決,就像這樣:
let emailSent = Promise.all(
array.map(async (item, i, array) => {
//asynchronous code for send emails
})
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.