所以我一直想知道这样做是否有好处。我将在下面给出示例。

包装在Promise中的异步函数:

(async () => {
    await new Promise((resolve, reject) => {
        fs.writeFile(filePath, dataToWrite, (error) => {
            if (error) {
                reject(error);
                return;
            }
            resolve();
        });
    });
})();


同步功能:

(() => {
    fs.writeFileSync(filePath, dataToWrite);
})();


从光读中我唯一了解的是,同步函数调用会阻塞该过程,直到完成为止。因此,例如,具有api端点的Web服务器将无法处理这些请求,直到完成同步功能。对于包含在promise中的异步函数也是如此吗?如果两者之间有任何区别,可以的话可以解释一下吗?

最佳答案

同步函数调用将阻止该过程,直到完成。


是。


  对于包含在promise中的异步函数也是如此吗?


不,这就是异步处理的重点。

await仅“阻止”特定async function的代码执行,直到等待的承诺成立为止,但其他所有内容将继续运行。

关于javascript - 包装在Promise与同步功能中的异步功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47939680/

10-12 07:05