码迷,mamicode.com
首页 > 其他好文 > 详细

async + promise 解决回调地狱

时间:2019-12-14 11:57:33      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:resolve   地狱   成功   bsp   new   关闭   efi   ons   file   

// 解决异步回调地狱的方案: 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 解决回调地狱

标签:resolve   地狱   成功   bsp   new   关闭   efi   ons   file   

原文地址:https://www.cnblogs.com/wangsai-666/p/12038416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!