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对象中执行最快的那一个
浙公网安备 33010602011771号