Promise学习之基本方法

前言

上一篇章我们学习了Promise的概念、基本使用、状态等等,对于Promise也有了基础的了解,那本章就对与Promise的方法作基本学习,去了解了解Promise提供了什么方法。

一、then

then处理Promise返回结果,接收两个回调函数

  • 第一个回调函数:Promise执行成功触发的回调函数,从这个函数中可以获取成功数据
  • 第二个回调函数:Promise执行失败或出错触发的回调函数

在异步代码中我们需要传入回调函数来获取返回结果,而想通过这个结果再进行异步操作,就需要继续执行同样的操作,这样就产生了回调地狱,如下展示

sum(10, 20, (result) => {
  console.log("执行结果1", result);
  sum(result, 30, () => {
    console.log("执行结果2", result);
    sum(result, 40, () => {
      console.log("执行结果3", result);
      sum(result, 50, () => {
        console.log("执行结果4", result);
        sum(result, 60, () => {
          console.log("执行结果5", result);
          console.log("执行结束");
        });
      });
    });
  });
});

这样的代码就会导致我们难以处理某个回调产生的问题、可读性差等问题,那Promise又是如何去解决的?

在调用then方法之后会返回一个Promise对象,而基于这个Promise对象可以再调用then方法,实现链式调用,也就解决回调地狱问题,光讲概念有点难以理解,上代码

function sum(a, b) {
  new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(a + b);
    }, 2000);
  });
}
sum(10, 20)
  .then((result) => {
      // 触发成功回调
      console.log("执行结果1", result);
      return result + 30;
    },(err) => {
      // 触发错误回调
      console.log("出错啦!!");
    }).then((result) => {
      // 触发成功回调
      console.log("执行结果2", result);
      return result + 40;
    },(err) => {
      // 触发错误回调
      console.log("出错啦!!");
    });

then方法中,通过第一个函数可以获取到异步代码成功返回的方法,那在这个函数中我们就可以做一些其他到操作,然后继续返回结果,成为下一个then方法成功回调的数据,也就是说我们在每个then方法的两个回调单独做操作,成功回调继续求和返回结果,错误回调则处理错误。

二、catch

catch是在Promise对象中执行reject函数执行出错所触发的,为了捕获错误并返回错误结果,同样执行catch方法也会返回一个Promise对象。

catch接收一个回调函

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值