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

来源:3-3 错误处理

edgex

2018-07-15 14:38

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回答

  • 857647010
    2019-06-09 16:04:46
    已采纳

    异常第一次被捕获,就不会再被捕获了,类似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); })


    857647...

    结果是 error:bye

    2019-06-09 16:05:34

    共 1 条回复 >

  • International陳
    2019-04-21 00:00:35

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

  • edgex
    2018-07-15 14:44:06

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

Promise 入门

带你入门 Promise。

31560 学习 · 42 问题

查看课程

相似问题