所以我一直想知道这样做是否有好处。我将在下面给出示例。
包装在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/