Javascript 如何使用返回的承诺运行控制台消息
我刚刚做了一个这样的场景:Javascript 如何使用返回的承诺运行控制台消息,javascript,Javascript,我刚刚做了一个这样的场景: function first() { return new Promise(function(resolve, reject) { setTimeout((function() { console.log("first"); }), 2000); }); } function main() { first(); console.log("second") } main(); 输出是第二个,然后是第一
function first()
{
return new Promise(function(resolve, reject)
{
setTimeout((function()
{
console.log("first");
}), 2000);
});
}
function main()
{
first();
console.log("second")
}
main();
输出是第二个,然后是第一个。如何使用promise打印第一条控制台消息之后的第二条控制台消息?我知道有人问过类似的问题,但也有关于函数和将承诺存储到变量中的问题。我不明白如何在我的情况下使用它
非常感谢您需要调用
。然后在Promise
上调用,以便在该Promise解决时运行函数。您还需要在setTimeout
中调用resolve()
,以指示您希望在超时回调运行时解析Promise
:
函数优先(){
返回新承诺(功能(解决、拒绝){
setTimeout(函数(){
控制台日志(“第一”);
解决();
}, 2000);
});
}
函数main(){
第一()
.然后(()=>{
console.log(“第二个”)
});
}
main()代码>另一种方法是使用async/await
(注意main()
方法的更改):
承诺有一个。然后方法-下面是一个
function first()
{
return new Promise(function(resolve, reject)
{
setTimeout((function()
{
console.log("first");
resolve();
}), 2000);
});
}
async function main()
{
await first();
console.log("second")
}
main();