微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ES6-promise理解

1、promise是什么:是一个构造函数,通过new关键字构造出来了一个对象  这个对象的返回值是一个promise对象

2、promise做了什么:对一个异步操作的封装,操作的结果有三个  等待结果 、成功结果、失败结果

一个promise的状态只能从pending 转换为resolved  或者pending  转换为rejected,

3、promise解决了什么问题:解决了回调地狱的问题,代码的重复嵌套 会造成代码的可读性差 , 

function a() {
  function b() {
    function c() {
      function d() {}
      d();
    }
    c();
  }
  b();
}
a();

注意:promise的回调函数是同步代码,promise对象中封装的方法是异步代码 ,封装的方法

then方法:then()方法是异步执行,then()前的方法执行完后再执行then()内部的程序,这样就避免了,数据没获取到等的问题。

语法:promise.then(onCompleted, onRejected);

参数

promise 必需。 Promise 对象。

onCompleted 必需。 承诺成功完成时要运行的履行处理程序函数

onRejected 可选。 承诺被拒绝时要运行的错误处理程序函数

catch方法

用了处理当前的promise对象最终的失败状态的情况,当调用then方法时是可以不传递失败回调的,那么不传递失败回调,如果调用失败就会被catch捕获,传入的catch中的回调函数

all方法

all的用法:谁跑的慢,以谁为准执行回调。  都成功则成功   只要有失败,则失败

all接收一个数组参数,里面的值最终都算返回Promise对象

Promise的all方法提供了并行执行异步操作的能力,并且在所有异步操作执行完后才执行回调。

Promise.all(iterable) 方法返回一个 Promise 实例,此实例在 iterable 参数内所有的 promise 都“完成(resolved)”或参数中不包含 promise 时回调完成(resolve);如果参数中 promise一个失败(rejected),此实例回调失败(reject),失败原因的是第一个失败 promise 的结果

race方法:谁跑的快  以谁为准执行回调

Promise.race(iterable) 方法返回一个 promise,一旦迭代器中的某个promise解决或拒绝,返回的 promise就会解决或拒绝。

Promise.allSettled()方法

返回一个promise,该promise在所有给定的promise已被解析或被拒绝后解析,并且每个对象都描述每个promise的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐