异步函数包含在promise与sync函数中

时间:2017-12-22 10:12:44

标签: javascript node.js asynchronous

所以我一直想知道这是否有任何好处。我将在下面举例说明。

包含在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中的异步函数也是如此吗?如果两者之间有任何差异,可以给出解释吗?

1 个答案:

答案 0 :(得分:2)

  

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

  

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

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

await仅阻止特定async function代码的执行,直到等待的承诺结算,但其他一切将继续运行。