Promise

1.promise:主要用于解决异步回调地狱的问题

       做一件事需要四个步骤:
    1.登录功能 
    2.列表信息  
    3.某条列表中的某条数据详情  
    4.看到某条数据详情才可以对这条数据进行增删改查
 
回调地狱问题对于前端来说是一个灾难,维护性,修改上都会带来很多的麻烦,promise帮助我们解决了回调地狱的问题
 

2.Promise:

es6规定Promise对象是一个构造函数,用来生成一个promise实例,构造函数的参数是一个立即执行函数,也叫做立即执行器(excutor),这个立即执行函数有两个参数,这两个参数也是函数,分别是resolve和reject
 
resolve 函数的作用:将promise对象的状态从"进行中"改变成"成功",在异步操作成功时调用,并将异步操作的结果作为参数传递除去,resolve("value"),这个值是任意值。
 
reject  函数的作用:将promise对象的状态从"进行中"改变成"失败",在异步操作失败时调用,并将异步操作的结果作为参数传递进去,reject("value"),这个值是任意值
 

- promise三种状态:pending(进行中)、resolved(成功)、rejected(失败)

promise状态只能由pending变成resolved,或者从pending变成rejected,不会从成功到失败也不会失败后再成功
 

- promise方法

动态方法:方法挂载到构造函数的原型下面
- 每一个Promise实例都有then方法,then方法是promise执行成功的函数,获取成功的结果,then可以多次被调用和链式调用,then调用之后返回的仍然是一个promise
then(onFulfilled,onRejected):第一个参数是获取成功的结果,第二个参数是获取失败的结果
catch():捕获失败的结果,通常把成功写在then()里面,把失败写在catch()里面
finally():无论成功失败都会执行的函数
 
静态方法:方法挂载到构造函数身上
       Promise.all([ ]):该方法接收一个数组作为参数,数组中每一项都是promise对象,这个方法返回一个全新的promise对象,数组中的promise对象全部成功这个全新的promise对象状态才算成功,如果有一个promise失败,那么这个全新的promise对象就是失败的状态,这个全新的promise的值是数组中每一个promise值组成的数组
 
       Promise.race([ ]):该方法接收一个数组作为参数,数组中每一项都是promise对象,这个方法返回一个全新的promise对象,这个全新的promise对象就是数组中的promise对象中执行最快的那一个
 
 
 
 
 

posted @ 2020-12-16 14:55  董珊珊  阅读(17)  评论(0)    收藏  举报