在 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 函数中像写同步代码一样处理异步操作。