function f(val) {
return new Promise((resolve, reject) => {
if(val){
resolve({name: '小明'})
} else{
reject('404')
}
})
}
f(false).then((data) => {
console.log(data)
}, (fail)=>{
console.log(fail)
})
f(true).then((data)=>{
console.log("TCL: data", data)
return f(false)
.then(()=>{
console.log('我永远不会被输出,因为我明明是false但却没有带最初构建时的参数')
})
.catch(()=>{
console.log('无论有无参数,我都会被执行,我只负责接受false')
})
.finally(()=>{
console.log('无论什么结果,我一定会被最终执行')
})
})
promise常与then,catch和finally配合,catch负责无参状态下接受false,并执行相应内容,而finally表示最终一定会输出什么
PS:注意如果return了一个f(false)后一直不cantch的话会报uncaught错误