对于promise的理解

        一、首先,Promise 是一个构造函数,对回调函数的一种封装,对异步编程的一种改进,用同步的方式表达出来。可以说Promise是ajax的执行状态管理工具,它还应用到Vue里的fetch等方面。该构造函数身上有两个方法:Promise.all(),和Promise.race()。

         其实,我们应用的重点是:new出来的promise对象。它有三种状态:pending(进行中),resolved(已完成),rejected(已失败),状态一旦发生,就不能改变。执行new的时候状态就开始变化。promise对象身上有两个方法:then(),和catch()

        语法:    var oP =new Promise(function(resolve,reject){ 

                                        reject(data); || resolve(data);

                                 }) ;

       oP.then(function(data){ }, function(data){ })   //第一参数是在oP状态为resolved时执行。第二参数是在oP状态为rejected时执行(也叫错误捕获)。

        oP.catch( function(data){ })。 //捕获错误,出错时不捕获错误会报错。 

      oP.then(function(data){ }).then(function(data){ })  //then()还可以传递,但是数据data不会传递(即第二个data为undefined)。

         oP.then(function(data){ }, function(data){ }).catch( function(data){ })  //catch不会传递执行错误,只会执行一次(即这里的catch不会执行)。

        所以,我们在遇到回调函数层层嵌套时,就可以将函数返回一个promise对象。利用 then方法+catch方法 来处理。

        二、使用promise的好处是:

            1.代码结构更加扁平且更可读,清晰明了。

            2.能解决回调地狱问题。

            3.可将数据请求和业务逻辑分离开来。

            4.便于管理维护。

            5.能更好的捕获错误。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JasonSon__

大家的支持,才是我最大的鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值