-2

众所周知,在此代码段中,如果getFirst()返回真值,getSecond()则不进行评估:

const result = getFirst() || getSecond();

但是,我很好奇异步函数是否同样适用:

const result = (await getFirstAsync()) || (await getSyncAsync());

它是启动第二个承诺,还是等待第一个得到解决?

4

1 回答 1

2

这是微不足道的测试。

function getFirstAsync() {
    return new Promise(res => {
        console.log("getFirstAsync");
        res(true);
    });
}

function getSyncAsync() {
    return new Promise(res => {
        console.log("getSyncAsync");
        res(false);
    });
}

(async function () {

    const result = (await getFirstAsync()) || (await getSyncAsync());
    console.log({result});

})();

不调用第二个函数。

于 2019-12-08T21:13:33.100 回答