什么是Promise、怎么理解Promise?以及使用场景。。

1、什么是Promise

        Promise 即为一个Es6新增的一个解决异步的方案,译为承诺,在Promise没出现之前,我们获取接口返回的数据都是通过回调函数的方式进行返回,这样造成的后果就是,当我们后期项目比较大的时候,会造成代码堵塞,不易理解,臃肿,难以维护。慢慢就会造成回调地狱的出现。

所谓回调地狱:

doSomething(function(result) {

    doSomethingElse(result, function(newResult) {

      doThirdThing(newResult, function(finalResult) {

        console.log('得到最终结果: ' + finalResult);

      }, failureCallback);

    }, failureCallback);

  }, failureCallback);

 阅读回调地狱代码属实头疼,难以接受。。。。。

现可通过Promise来解决这个问题

doSomething().then(function(result) {
    return doSomethingElse(result);
  })
  .then(function(newResult) {
    return doThirdThing(newResult);
  })
  .then(function(finalResult) {
    console.log('得到最终结果: ' + finalResult);
  })
  .catch(failureCallback);

    通过Promise的链式调用 瞬间感觉到了代码的清晰易懂程度 

  • Promise链式调用一下就降低了代码编译的难度
  • 代码可读程性明显增强

Promise 有三种状态 

  • peding        进行中
  • resolve       成功的回调
  • reject          失败的回调

特点

  • 对象的状态不受外界影响,只有异步操作的结果,可以决定当前是哪一种状态
  • 一旦状态改变(从pending变为fulfilled和从pending变为rejected),就不会再变,任何时候都可以得到这个结果

2、用法

        Promise对象是一个构造函数,可以声明一个变量来进行创建实例

        

 

Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolvereject

  • resolve函数的作用是,将Promise对象的状态从“未完成”变为“成功”
  • reject函数的作用是,将Promise对象的状态从“未完成”变为“失败”

Promise构建出来的实例存在以下方法:

  • then()             //成功的回调
  • catch()           //失败的回调
  • finally()          //指定不管 Promise 对象最后状态如何,都会执行的操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值