async + promise 解决回调地狱
Posted wangsai-666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了async + promise 解决回调地狱相关的知识,希望对你有一定的参考价值。
// 解决异步回调地狱的方案: async + promise
async function writeFile() {
// 打开文件
const fd = await new Promise((resolve, reject) => {
// 执行 打开文件 异步操作
fs.open(‘c.txt‘, ‘w‘, (err) => {
if (!err) {
// 将promise对象的状态改成 成功状态
resolve();
} else {
// 将promise对象的状态改成 失败状态
reject(err);
}
})
})
// 写入内容
await new Promise((resolve, reject) => {
fs.write(fd, ‘沛华~~‘, (err) => {
if (err) {
console.log(‘文件写入失败‘, err);
}
resolve();
})
})
// 关闭文件
await new Promise((resolve, reject) => {
fs.close(fd, (err) => {
if (!err) {
resolve()
} else {
reject(err);
}
})
})
return ‘success‘;
}
const p = writeFile();
p.then((a) => {
console.log(‘全部执行完了~‘,a);
}).catch((err) => {
console.log(err);
})
以上是关于async + promise 解决回调地狱的主要内容,如果未能解决你的问题,请参考以下文章
Node.js Promise对象(解决回调地狱问题)async和await函数
解决异步问题,教你如何写出优雅的promise和async/await,告别callback回调地狱!
Node.js回调地狱及使用Promiseasync和await函数的解决方法