【发布时间】:2021-01-03 04:34:12
【问题描述】:
考虑一下:
(async function () {
const arr = [];
await new Promise(r => arr.push(r));
console.log("done")
})();
脚本在await 处终止,并且日志从未打印到 sdout,我不明白为什么
【问题讨论】:
标签: javascript node.js promise async-await
考虑一下:
(async function () {
const arr = [];
await new Promise(r => arr.push(r));
console.log("done")
})();
脚本在await 处终止,并且日志从未打印到 sdout,我不明白为什么
【问题讨论】:
标签: javascript node.js promise async-await
您的代码没有问题。这只是 Node 的模型。如果没有挂起的 I/O 挂起的 Promise,则不会阻止 Node 退出。
如果你想阻止 Node 退出,你可以安排一些 I/O,但挂起的 promise 实际上并不能阻止 Node 退出。
我并不是说我同意或喜欢这种行为,但这就是我们目前所做的 ?
编辑:在问题跟踪器中找到 the bug report/discussion。
【讨论】:
console.log 但现在我明白了,告诉我如果我错了,当使用 async/await 时,下一行充当回调或承诺的then 部分