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

  • 相关阅读:
    Centos7-两台Centos机器间复制文件
    Centos7-卸载自带的jdk 安装jdk8
    java网络编程_IP地址
    多线程下单例模式的实现_ThreadLocal_ReentrantLock
    线程定时调度
    线程通信
    线程同步学习一
    java线程学习2
    java线程学习1
    工单系统的设计与实现(3)
  • 原文地址:https://www.cnblogs.com/wangsai-666/p/12038416.html
Copyright © 2011-2022 走看看