zoukankan      html  css  js  c++  java
  • 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);
    })

  • 相关阅读:
    python面试题
    面试总结
    552 Student Attendance Record II 学生出勤记录 II
    551 Student Attendance Record I 学生出勤纪录 I
    547 Friend Circles 朋友圈
    546 Remove Boxes 移除盒子
    543 Diameter of Binary Tree 二叉树的直径
    542 01 Matrix 01 矩阵
    3.1 特性
    2.6 datetime 模块
  • 原文地址:https://www.cnblogs.com/wangsai-666/p/12038416.html
Copyright © 2011-2022 走看看