1为什么需要promise:
ajax请求id,id请求用户名,用户名获取email
产生回调地狱:回调函数中嵌套回调
Promise解决了回调地狱
2promise使用。
promise是一个构造函数,通过new关键字实例化对象。。
语法:
1 new promise()
promise函数接受参数。(一个函数)一个函数作为,参数。 ()=>{}
参数函数接受参数。
resolve,reject。
2 promise 实例有两个属性。
state:状态。
result:结果。
const p =new Promise( ( resolve, reject) => { })
1) promise对象的状态:(ajax:准备,成功了,失败了,)
1 pending 装备
2 fulfill:成功。完成
3 rejected:失败
2) 状态的改变:
通过调用reslove()和reject()改变当前的promise 的对象状态。
resolve();promise对象的状态 改成fulfilled
reject();promise对象的状态 改成 rejected;
promise状态改变是 一致性的。
3)promise的结果。
3 p对象 的方法。
promise函数里面有3个方法。
then方法。
参数:1 是一个函数,(成功的时候执行)2还是一个函数。(失败的时候执行。)
返回值:是一个promise对象。
p.then( ()=>{
console.log(‘成功时候调用。’)//resolve
},()=>{
console.log(‘失败的时候调用’); //reject
} )
console.log(p);
then方法的参数函数中,通过promise对象结果。
then方法返回一个promise实例。状态,pending。
pending。 fulfilled。
链式操作: new Promise((resolve,reject)=>{}).then().then()
then 方法,通过return 返回的promise改为fullfiled。