我正在包装一个函数,将一个promises返回到一个小辅助函数的async
函数中......
trash(filesArray, {
glob: false
})
.then(() => {
resolve(true);
}).catch((err) => {
return err;
})
...因为我喜欢在下一个更高级别使用await
同步使用它:
async empty(liveMode, force) {
…
await helpers.trashSync(trashFiles);
// then doing further stuff...
}
当然,这意味着,我需要再次使用async
关键字...(否则我被告知await
是一个'未知的保留'字或者等等)如果我不是错了,我现在需要在下一个更高级别再次使用await
?
await memberSet.empty(true, false)
这个“游戏”是否会在我的应用程序中一直持续下去,所以到最后,我有很多async
/ await
,无论在哪里&#39 ;包含一个微小的异步函数?
或者我只是错过了停止的地方?
答案 0 :(得分:0)
您无法将异步函数转换为同步函数,async / await的目的是允许您编写具有与同步调用类似的代码路径的代码,但允许事件循环可重入并且因此更细粒度。生成器/产量是中断执行流程的另一种方法。
您需要找到一个点,您的调用堆栈自然需要返回的promise,或者不关心它是否异步完成。