Node.js async await无法正常工作,因为我对node js不熟悉

Node.js async await无法正常工作,因为我对node js不熟悉,node.js,Node.js,这是我的异步等待代码,它没有像我期望的那样工作。有人能帮我吗 我的结果如下 Start end waiting for 3000 miliseconds 但我希望它能像这样工作 Start waiting for 3000 miliseconds end 如前所述,setTimeout不会返回承诺,因此等待它是多余的。您可以将其包装到一个新的Promise构造函数中,并在resolve()上返回超时的结果。但你仍然会有以下几点: NodeJS不支持高级wait。意味着您必须将其包装成一个始终

这是我的异步等待代码,它没有像我期望的那样工作。有人能帮我吗 我的结果如下

Start
end
waiting for 3000 miliseconds
但我希望它能像这样工作

Start
waiting for 3000 miliseconds
end

如前所述,setTimeout不会返回承诺,因此等待它是多余的。您可以将其包装到一个新的Promise构造函数中,并在
resolve()
上返回超时的结果。但你仍然会有以下几点:

NodeJS不支持高级wait。意味着您必须将其包装成一个始终返回承诺的异步函数。这就不可能用同样的方式来称呼它。 但是,您可以通过以下两种方式完成此操作:

//使用then().catch(),您可以使用它,因为异步函数返回承诺
开始()。然后(()=>waittime())。然后(()=>end());
//用生命
(异步函数(){
start();
等待等待时间();
end();
})()

我建议您阅读更多有关的内容,其中有一些重要的注意事项需要了解:)

我们在承诺上使用
wait
setTimeout
不返回承诺

 function start(){
 console.log ('Start')
}


async function waittime(){
  let respone =await  setTimeout(()=>  {
      console.log('waiting for 3000 miliseconds')
    }, 3000);
    return respone
}



 function end(){
 console.log('end')
}

start();
waittime();
end();