ES6 Promise构造函数
首先说明一下Promise的是为了解决异步回调地狱(callback 横向回调地狱),但是当时用的时候出现了竖向回调地狱(后话)。
对Promise的理解:解决异步回调地狱。
Promise原理:Promise是一个构造函数,它能自己动执行操作,他有一个实参,实参参数类型为函数类型,函数中有两个形参 resolve、reject,分别暂存成功的数据和失败的数据。Promise函数有三个原型,分别是:then(),catch()和finally();有常用的四个静态方法,分别是:Promise.resolve(),Promise.reject(),Promise.all(),Promise.race()。实例化对象调用then,then的第一个实参接收的数据是之前暂存成功的数据,then的第二个实参接收暂存失败的数据,如果then只有一个实参,那么失败的数据就交给实例化对象调用的catch来处理。注意:then方法中有返回值的话,若返回值不是Promise类型并且不是reject那么返回值返回给下个then的第一个参数,如果返回值是Promise类型并且是reject那么返回值返回给下个then的第二个参数。
let p=new Promise(resolve,reject){
console.log(“你好”)//不需要调用函数会自动打印 你好
resolve(成功的数据)
reject(失败的数据)
}
p
.then(data=>{
console.log(1,data) // 1 成功的数据
//return 111
return new Promise(resolve,reject){
reject(“要加油奥”)
}
},
err=>{
console.log(1,err)} //1 失败的数据
)
.then(data=>{
console.log(2,data) //打印 2 111
},
err=>{
console.log(2,err)} //打印 2 要加油奥
)
有待完善!!!