promise异步回调函数

1.1-Promise介绍

  • ES6教程传送门:ES6 入门教程

  • 1.Promise是什么?

    • Promise 一个 构造函数, 用于创建Promise对象

      • Promise对象:可以理解为一个处理异步操作的容器

  • 2.Promise作用:解决回调地狱

    • 回调地狱:异步回调 层层嵌套

    • 1.Promise作用 : 解决回调地狱问题
          回调地狱 : 异步回调 层层嵌套
      */

      //需求: 依次读取 文件  a.txt , b.txt , c.txt 这三个文件内容
      const fs = require('fs');

      //(1)能直接按照顺序写吗?  : 不能,因为异步操作 是无序的
      fs.readFile("./data/a.txt", 'utf-8', (err, data) => {
          if(err){
              console.log(err);
          }else{
              console.log(data);
          };
      });

      fs.readFile("./data/b.txt", 'utf-8', (err, data) => {
          if(err){
              console.log(err);
          }else{
              console.log(data);
          };
      });

      fs.readFile("./data/c.txt", 'utf-8', (err, data) => {
          if(err){
              console.log(err);
          }else{
              console.log(data);
          };
      });


      //(2)解决方案 : 在回调函数中嵌套执行
      //弊端 : 形成回调地狱(异步回调 层层嵌套,非常麻烦且不便于维护)
      //读取文件A
      fs.readFile("./data/a.txt", 'utf-8', (err, data) => {
          if(err){
              console.log(err);
          }else{
              console.log(data);
              //A读取成功之后开始读取B
              fs.readFile("./data/b.txt", 'utf-8', (err, data) => {
                  if(err){
                      console.log(err);
                  }else{
                      console.log(data);
                      //B读取成功之后开始读取C
                      fs.readFile("./data/c.txt", 'utf-8', (err, data) => {
                          if(err){
                              console.log(err);
                          }else{
                              console.log(data);
                          }
                      });
                  }
              });
          }
      });

    • 1.2-Promise基本使用

    • 1.实例化Promise对象

      • 作用: 将异步操作代码 放入 Promise中

        • resolve:异步操作 成功状态

        • reject : 异步操作 失败状态

      • new Promise((resolve,reject)=>{ 你的异步操作 })

    • 2.调用then()方法处理异步操作结果

      • promise对象.then((data)=>{ 处理成功数据 },(err)=>{ 处理失败信息 });

  • /* 
    1.Promise是一个构造函数 , 返回一个Promise对象
    2.使用流程
        (1)实例化Promise对象 : 将异步操作放入Promise中
        (2)调用then() 方法: 处理异步操作结果
    */

    const fs = require('fs');
    /** 1. 实例化Promise
    * @description:实例化Promise
    * @param {Function}  (resolve:成功处理函数,reject&#

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值