let p = new Promise((resolve, reject)=>{
setTimeout(_=>{
resolve(200)
// console.log('resolve后继续..')
}, 1000)
//reject的本质是把状态改成rejected,并抛出一个错误
reject('rejected')
})
p.catch(err=>{
console.log('catch ERR 1: '+ err)
})
p.catch(err=>{
console.log('catch ERR 2: '+ err)
}).catch(err=>{
//此时.catch的调用者是成功的promise, 故不会执行此处的代码
console.log('catch ERR ?: '+ err)
})
p.then(data=>{
console.log(data)
}).catch(err=>{
console.log('catch ERR 3: '+ err)
})
// 如果被error被处理过,不应该再经过第二个catch
// p.then(data=>{
// console.log('second:'+data)
// },err=>{
// console.log('catch ERR 2')
// })
// let p1 = new Promise(function(resolve) {
// setTimeout(() => {
// resolve("fulfilled 1");
// }, 2000);
// });
// let p2 = new Promise(function(resolve, reject) {
// setTimeout(() => {
// reject("reject 2");
// }, 1000);
// });
// Promise.all([p1, p2]).catch(function (reason) {
// console.log(reason); //打印: ["fulfilled 1","fulfilled 2"]
// });
console