执行以下代码,正确的输出结果是:
Promise.reject(0).catch(e => e).catch(e => console.log(e))
做到一道异常的题目,但是我对异常处理不太了解,所以做错了。
Promise.reject(0).catch(e => e).catch(e => console.log(e))
我以为这是和then一样的,e会被传递到最后,所以会被输出。但是其实错误处理是只执行最近的一个catch的。所以只有第一个catch被执行了。
但是其实catch也是可以写成链的。那就是其中一个catch没能处理掉error,则抛出这个错误给下一个catch。这样子就能传递下去了。
所以这道题目的结果就是无,因为第一个catch并没有输出什么内容,只是返回了e。