Promise的作用是来使js函数同步执行, 注意是Promise不是promise,刚开始写的时候就犯了这个错误.
Promise接收两个函数参数, resolve和reject, resolve表示执行成功, reject表示失败,
function p1(){
return new Promise( (resolve, reject)=>{
setTimeout(()=>{
resolve("function p1");
console.log("p1");
}, 3000);
});
}
function p2(){
return new Promise( (resolve, reject)=>{
setTimeout(()=>{
resolve("function p2");
console.log("p2");
}, 9000);
});
}
function p3(){
return new Promise( (resolve, reject)=>{
setTimeout(()=>{
resolve("function p3");
console.log("p3");
}, 2000);
});
}
p1().then(p2).then(p3).then((result)=>{
console.log(result);
}).catch((result)=>{
console.log(result);
});
/*
当其中一个执行出错,后面函数将不会再执行, 直接执行catch
当所有函数都执行成功后, 最后一个then作为最后一个函数的resolve参数
*/
/*
p1
p2
p3
function p3
*/
// p1();
// p2();
// p3();
/*
p3
p1
p2
*/