首页 > 解决方案 > Promise 构造函数是同步的吗?

问题描述

假设 Promise 构造函数中的代码包含同步赋值。我有这样的事情:

function x() {
    let rejector = null;
    new Promise((resolve, reject) => {
        rejector = reject;
        // async code follows - setTimeout, network requests, etc.
    });
    return rejector;
}

在本例中,Promise 构造函数中的同步代码是否保证在其包含函数的 return 语句之前执行?

到目前为止,对我来说,它每次都有效——typeof x() == 'function'总是true;但我觉得我只是碰巧赢得了一场比赛。我通过一个循环运行了 10^8 次,检查我是否曾经“输掉比赛”,但不,它总是成功的。这总是成立吗?

标签: javascriptes6-promise

解决方案


推荐阅读