Puppeteer:包含异步函数的圆括号是什么意思?

Puppeteer: What do the round brackets enclosing an async function mean?

我不明白这些包含异步函数的圆括号是做什么用的。它们表示什么?

const puppeteer = require('puppeteer');

(async() => {

  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // more codes here
})();

您看到的是 Immediately Invoked Function Expression。他们想马上运行这段代码,所以最后有一对(),以便立即调用函数。但是仅仅添加这些会导致非法语法,所以另外整个函数需要用括号括起来。

如果您好奇他们为什么要创建一个函数只是为了立即调用它,他们这样做是为了能够使用 await 关键字。 Await 只能在异步函数中使用,因此不能在文件的根级别。还有其他原因可以激发 IIFE 的使用,但这就是本例中的原因。