是否可以在全局范围内启用异步?这将非常好,所以我不必在函数中包装所有异步内容。如果在浏览器JavaScript中无法实现,是否可以在Node.js中使用?
我知道我可以使用自执行 - 匿名 - 异步功能,但对我来说它们看起来很难看。
(async function() {
// do stuff
})();
看起来好像很复杂。
能够在全局范围内使用await
会很棒。
答案 0 :(得分:2)
不,这是不可能的。所有async
函数都返回一个promise。因此,它是一种必须以特殊方式使用的特殊功能。
此外,如果您实际上遵循async
和await
的实际工作方式,您就会理解为什么必须指定特定类型的函数才能使用await
和解释器在创建函数范围时需要提前知道。
如果要在下一级范围内使用async
,那么创建await
函数包装器真的应该没什么大不了的。在顶级范围内放置许多重要逻辑最终会产生大量的全局符号,因此它通常不是设计的最佳方式。