Promise一种异步调用解决的一个类,解决回调地狱问题。将嵌套式调用变为链式调用,使代码更加清晰易维护。
Promise三种状态 pending(等待中),fulfill(成功),reject(拒绝)
new Promise().then(fn1,fn2) //fn1 为fulfill状态下的执行函数 fn2为reject状态下执行函数
1.原始写法
new Promise((resolve,reject) =>{
setTimeout(()=>{
resolve(data)
},1000)
}).then(res=>{
//do some
return new Promise((resolve,reject) => {
resolve(data)
})
}).then(res =>{
})
2.简化1
new Promise((resolve,reject) =>{
setTimeout(()=>{
resolve(data)
},1000)
}).then(res=>{
//do some
return Promise.resolve(data)
}).then(res =>{
})
3.简化2
new Promise((resolve,reject) =>{
setTimeout(()=>{
resolve(data)
},1000)
}).then(res=>{
//do some
return data;
}).then(res =>{
})
网友评论