Promise实例
function chiFan() {
return new Promise(function(resolve, reject) {
console.log("chiFan");
})
}
function shuiJiao() {
return new Promise(function(resolve, reject) {
console.log("shuiJiao");
})
}
function daDouDou() {
return new Promise(function(resolve, reject) {
console.log("daDouDou");
})
}
// 调用函数
chiFan()
.then(shuiJiao())
.then(daDouDou())
Promise的API
Promise的API 应用程序接口
Promise.resolve
Promise.reject
Promise.all 全部 Promise.all方法 参数是多个promise对象组成的数组, 返回值是一个新的promise对象
如果参数中的promise对象都成功就正常返回,并且promiseAll方法中的每一个promise都是并行状态,当全部完成之后就会自动的调用promise.all().then()方法.
如果参数中的promise对象有任意一个没有正常返回,那么整个pAll都会认为是失败的,并且把失败的这个promise对象的返回值直接输出 其他的就不会在继续执行了
promise.race
//Promise.race方法返回的也是一个promise对象, race方法谁先有结果就返回谁,无论成功还是失败(成功的就走resolve,失败就会在reject中返回)
let p1 = new Promise((resolve, reject) => {
setTimeout(() => {//模拟异步
reject("p1")
}, 1000)
});
let p2 = new Promise((resolve, reject) => {
setTimeout(() => {//模拟异步
resolve("p2")
}, 5000)
});
let p3 = new Promise((resolve, reject) => {
setTimeout(() => {//模拟异步
resolve("p3")
}, 2000)
});
let pRace = Promise.race([p1, p2, p3]);
pRace.then(
resolve => {
console.log("成功后的回调",resolve);//成功后的回调 p1
},
reject => {
console.log("失败后的回调",reject);//失败后的回调 p1
})
Promise.all
/*let p1 = new Promise((resolve, reject) => {
setTimeout(() => {//模拟异步
resolve("p1")
}, 1000)
});
let p2 = new Promise((resolve, reject) => {
setTimeout(() => {//模拟异步
resolve("p2")
}, 5000)
});
let p3 = new Promise((resolve, reject) => {
setTimeout(() => {//模拟异步
reject("p3")
}, 2000)
});
let pAll = Promise.all([p1, p2, p3]);
pAll.then(
resolve => {
console.log("成功后的回调",resolve);//"成功后的回调",["p1", "p2", "p3"]
},
reject => {
console.log("失败后的回调",reject);
})*/