Node.js 中的异步函数和 IIFE

在 Node.js 开发中,经常需要处理异步操作,比如网络请求、文件读写等。JavaScript 提供了 async/await 语法来简化异步代码的编写。但是,Node.js 并没有像其他语言那样提供 async main 方法,这就需要使用一些技巧来实现顶层的异步函数。本文将介绍如何在 Node.js 脚本中使用异步函数和立即调用函数表达式(IIFE)。

首先,来看一个常见的错误。假设有以下代码: async function doSomethingAsync() { return Promise.resolve('Hello, World!'); } const response = await doSomethingAsync(); console.log(response); 当尝试运行这段代码时,会得到一个错误提示:SyntaxError: await is only valid in async function。这是因为在非异步函数中使用了 await 关键字。

为了解决这个问题,可以利用 IIFE(Immediately Invoked Function Expression)。IIFE 是一种在定义后立即执行的函数表达式。可以将异步函数包装在 IIFE 中,这样就可以在顶层代码中使用 await 了。以下是修改后的代码: async function doSomethingAsync() { return Promise.resolve('Hello, World!'); } (async function() { const response = await doSomethingAsync(); console.log(response); })(); 现在,当运行这段代码时,会输出 "Hello, World!"。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485