Nodejs Promises
Promises
Promises是一种更高级的处理异步编程的方式,它可以更清晰地处理异步操作的结果和错误。一个Promise代表一个异步操作,可以是已经完成、正在进行中或尚未开始。
// 使用Promise读取文件示例
const fs = require('fs');
const readFilePromise = (filename) => {
return new Promise((resolve, reject) => {
fs.readFile(filename, 'utf8', (err, data) => {
if (err) {
reject(err);
return;
}
resolve(data);
});
});
};
// 使用Promise
readFilePromise('/data/wwwroot/default/asset/test.html')
.then(data => {
console.log('File content:', data);
})
.catch(err => {
console.error('Error:', err);
});
在上面的例子中,我们使用readFilePromise函数返回一个Promise,然后可以使用.then()来处理异步操作成功的情况,使用.catch()来处理错误。
Async/Await
Async/Await是构建在Promise基础上的语法糖,它使得异步代码看起来更像是同步代码,更容易阅读和理解。// 使用Async/Await读取文件示例
const fs = require('fs');
const readFileAsync = async (filename) => {
try {
const data = await fs.promises.readFile(filename, 'utf8');
return data;
} catch (err) {
throw err;
}
};
// 使用Async/Await
(async () => {
try {
const data = await readFileAsync('/data/wwwroot/default/asset/test.html');
console.log('File content:', data);
} catch (err) {
console.error('Error:', err);
}
})();
在上面的例子中,我们使用async关键字声明一个异步函数,然后可以在其中使用await关键字来等待一个Promise的解决。这使得异步代码的编写和阅读更加自然。
网友评论0