javascript - Node.js:异步函数似乎不等待 for 循环中 Promise 的解析

标签 javascript node.js async-await es6-promise

在执行第一个 await new Promise 之后,For 循环结束,没有任何代码。如果我理解正确,每次迭代应该暂停 2 秒,然后 Promise 被解析,console.log 输出指定的字符串,然后迭代结束。我应该如何重写代码以使其按预期工作?

'use strict';

(async function () {
    for (let i = 0; i < 5; i++) {
        await new Promise(resolve => { setTimeout(() => { resolve }, 2000) });
        console.log('end of loop');
    }
})();

最佳答案

您需要在 setInterval 回调中调用 resolve 函数。

await new Promise(resolve => { setTimeout(() => { resolve() }, 2000) });

关于javascript - Node.js:异步函数似乎不等待 for 循环中 Promise 的解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55121529/

相关文章:

javascript - 将普通旧 JavaScript 对象转换为 Require.js 模块

javascript - 如何使用 Google 电子表格从用户那里获取文本?

node.js - Bitbucket Pipeline + Firebase 托管

c# - 在 webapi 中正确使用 await async

javascript - 时刻范围 : Need to divide day into 15 minute slices

在浏览器中安装 Java 与启用 Java

javascript - 从使用 .then() 的 Promise 转换为 async/await

c# - 对于控制台和 Windows 应用程序来说,await Task.Run(...) 的行为不同

node.js - Amazon Echo Lambda 函数 ZIP 问题

node.js - 捕获引号中的字符串作为单个命令参数