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);
    })

  • 相关阅读:
    初学Listener
    初学filter
    Servlet开发
    伪随机数生成
    枚举类
    LeetCode74——Search a 2D Matrix
    STL——lower_bound()
    LeetCode198——house robber(不懂dp)
    LeetCode171——Excel Sheet Column Number
    参数传递的三种方式
  • 原文地址:https://www.cnblogs.com/wangsai-666/p/12038416.html
Copyright © 2011-2022 走看看