首页 > 解决方案 > 内部没有 await 关键字的异步函数

问题描述

我一直认为异步函数需要在里面包含“await”关键字,例如:

async function doTask() {
 let total = await CustomFunction(values);
 console.log(`Main Total: ${total}`);
}
doTask();

但我也看到一些类似的定义异步函数而没有等待:

GetData = async ( method, url, params) =>
{
    Axios.request({
        method, url, params
    });
}

那么在没有“await”关键字的函数前面添加 async 关键字有什么意义呢?

标签: javascriptecmascript-6es6-promise

解决方案


将函数标记为异步但内部没有等待是一种不好的做法,因为它会强制您的转译工具(babel/typescript)向生成的包添加一些额外的代码。
请参阅带有打字稿的示例,尝试删除/添加异步单词。
但正如 Juhil Somaiya 所说,没有 await 的代码将同步工作。


推荐阅读