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的结果。

相关文章

原文连接:https://www.cnblogs.com/dupd/p/5951311.htmlES6...
以为Es6,javascript第一次支持了module。ES6的模块化分为导...
视频讲解关于异步处理,ES5的回调使我们陷入地狱,ES6的Prom...
TypeScript什么是TypeScript?TypeScript是由微软开发的一款开...
export class AppComponent { title = 'Tour of heroes...
用 async/await 来处理异步昨天看了一篇vue的教程,作者用as...