Promise相关知识
一、Promise 到底是做什么的?
Promise是异步编程的一种解决方案。
一般情况下有异步操作时,使用Promise对这个异步操作进行封装。(代码优雅,互相独立又互相联系)
// 成功调用 resolve
new Promise((resolve, reject) => {
setTimeout(() => {
resolve('我爱你!!!')
// reject('你爱我!!!!!')
}, 1000)
}).then((data) => {
console.log(data);
console.log(data);
console.log(data);
})
// 失败调用 reject
new Promise((resolve, reject) => {
setTimeout(() => {
// resolve('我爱你!!!')
reject('你爱我!!!!!')
}, 1000)
}).then((data) => {
console.log(data);
console.log(data);
console.log(data);
}).catch((err) => {
console.log(err);
console.log(err);
console.log(err);
})
二、Promise 三种状态
1.pending:等待状态,比如正在进行网络请求,或者定时器没有到时间。
2.fulfill:满足状态,当我们主动回调 resolve 时,就处于该状态,并且会回调.then()。
3.reject:拒绝状态,当我们(主动回调了 reject 时,就处于该状态,并且会回调 .catch()。
三、Promise 的链式调用
Promise 的链式调用
Promise 的链式调用的简写
四、Promise 的all方法使用
关于Promise 的all方法的使用:(某个需求需要发送两个请求才能完成!可以用Promise.all)
Promise.all([
new Promise((resolve,reject)=>{
$.ajax({
url:'url1',
success:function(data){
resolve(data)
}
})
}),
new Promise((resolve,reject)=>{
$.ajax({
url:'url2',
success:function(data){
resolve(data)
}
})
]).then(results => {
console.log(results);
})