JS短路评估是否适用于async/await?

Does JS short-curcuit evaluation work with async/await?

众所周知,在此代码段中,如果 getFirst() returns 为真值,则 getSecond() 不会被计算:

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

但是,我很好奇异步函数是否也是如此:

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

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

这很容易测试。

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

})();

没有调用第二个函数。