为了账号安全,请及时绑定邮箱和手机立即绑定

这样写为什么不是输出两次bye

new Promise ( (resolve, reject) => {    
    setTimeout( () => {      reject('bye')    },2000)
})
.then( 
value => {    console.log(value);},    
error => {    console.log(error)   
})
.catch( error => {    console.log(error);})

只输出一次,那这个是then里输出的还是catch里输出的呢?

正在回答

3 回答

异常第一次被捕获,就不会再被捕获了,类似Java机制

new Promise((resolve, reject) => {

setTimeout(() => { reject('bye') }, 2000)

})

.then(

value => { console.log(value); },

error => {

console.log("error:" + error)

})

.catch(error => { console.log("catch:" + error); })


0 回复 有任何疑惑可以回复我~
#1

857647010

结果是 error:bye
2019-06-09 回复 有任何疑惑可以回复我~

成功才调用.then里的方法,错误就去到.catch方法,所有这个是走catch方法。

0 回复 有任何疑惑可以回复我~

我理解是后面的那个catch 是捕获then里reject返回的promise对象的error

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这样写为什么不是输出两次bye

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信