NodeJ异步/等待执行不正确

时间:2019-09-06 11:04:40

标签: node.js async-await

这是我的代码(index.js)的简单示例

function sleep() {
    return new Promise(() =>setTimeout(function(){console.log("In promise")}, 2000));
}

async function execute() {
    console.log("Start");
    await sleep();
    console.log("End");
}

execute();

当我使用 node index.js,结果是

Start
In promise

那是为什么?

“ End”是否也应写在日志中?

1 个答案:

答案 0 :(得分:4)

您没有兑现诺言。另外,您的控制台日志不应放置在此处:

function sleep() {
    return new Promise((resolve) => {
      console.log("In promise")
      setTimeout(function(){
        resolve()
      }, 2000);
    })
}

async function execute() {
    console.log("Start");
    await sleep();
    console.log("End");
}

execute();