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();