【发布时间】:2021-01-10 07:55:12
【问题描述】:
我正在研究如何使用Puppeteer 进行测试,我遇到的所有代码示例都使用以下语法:
(async () => {
//function body
})();
现在我的问题不仅仅是它的作用,因为我了解异步函数是什么。我想知道的是这个语法是什么意思,它是如何解析的?我是 Node.js 和 Puppeteer 的新手,我以前从未见过这种情况。我找到的教程都没有解释这里发生了什么。
我找到了this,它解释了=> 运算符的用途。所以看起来async () => 就像async function () 的简写?我仍然很困惑为什么整个内容都被括号包围,然后是另一对括号。
MDN 表明您可以使用async function fname() {...} 在javascript 中声明一个异步函数。这似乎很简单。那么为什么不使用这种语法呢?有什么区别?
【问题讨论】:
-
你想用谷歌搜索的词是 IIFE。 IIFE 与异步无关,但在这种情况下,它与异步函数一起使用。通常你会同步调用 IIFE。 IIFE 的全部意义在于创建一个新范围,以便该函数内部的变量不会对外部的所有其他内容可见
-
这是一个异步立即调用的函数表达式。有关说明,请参阅 benalman.com/news/2010/11/…。它只是创建一个异步函数范围来包含一些您希望在其自己的范围内隔离的代码,或者在这种情况下,您希望是异步的。它是定义命名函数然后调用它的简写。
标签: javascript node.js asynchronous puppeteer