在 Node.js 中,如何正确地使用 async/await 与 Promise 对象配合
在 Node.js 中,您可以使用 async/await
与 Promise
对象相互配合,以更简洁的方式处理异步操作。以下是一个简单的例子:
// 使用 util.promisify 将旧的异步函数转换为返回 Promise 的新版本
const { promisify } = require('util');
const fs = require('fs');
const readFileAsync = promisify(fs.readFile);
// 异步函数,使用 await 来等待 Promise 解决
async function getFileContents(filePath) {
try {
const data = await readFileAsync(filePath, 'utf8');
console.log(data);
return data;
} catch (err) {
console.error(err);
}
}
// 使用 async 函数,并且在其内部使用 await
(async () => {
const fileContents = await getFileContents('example.txt');
console.log(fileContents);
})();
在这个例子中,readFileAsync
是一个返回 Promise
的函数,它将使用 fs.readFile
但是是基于 Promise
的版本。然后我们定义了一个 async
函数 getFileContents
,它接受一个文件路径作为参数,并使用 await
来等待 readFileAsync
的结果。这样,我们可以在 getFileContents
函数中像写同步代码一样处理异步操作。
评论已关闭