promise为何这里只打印了一次出来?

image.png

function runAfter() {
    return new Promise(resolve => {
        console.log('milliseconds');
        setTimeout(()=>{console.log(1)}, 600);
    });
}

async function abc(){
    await runAfter()
    await runAfter()
}
abc()

调用两次runAfter()

阅读 2k
3 个回答

因为你没有调用 resolve() ,所以你的 promise 一直是在 pending 的 ,所以只打了一次。

console.log('milliseconds');  下面加个
resolve()

第一个runAfter没有resolve,用了await之后就卡住了后面的代码,所以第二个runAfter永远执行不了

第二个await runAfter()不会执行吧,第一个await还没结果呢,所以会一直等待

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题