首页 > 试题广场 >

执行以下代码,正确的输出结果是:Promise.reject

[单选题]
执行以下代码,正确的输出结果是:
Promise.reject(0).catch(e => e).catch(e => console.log(e))
  • 0
  • Promise对象
  • undefined
发表于 2021-12-03 15:34:09 回复(0)

做到一道异常的题目,但是我对异常处理不太了解,所以做错了。

Promise.reject(0).catch(e => e).catch(e => console.log(e)) 

我以为这是和then一样的,e会被传递到最后,所以会被输出。但是其实错误处理是只执行最近的一个catch的。所以只有第一个catch被执行了。


但是其实catch也是可以写成链的。那就是其中一个catch没能处理掉error,则抛出这个错误给下一个catch。这样子就能传递下去了。


所以这道题目的结果就是无,因为第一个catch并没有输出什么内容,只是返回了e。

发表于 2021-06-25 09:42:28 回复(1)
第一个catch执行后返回的已经是一个成功的Promise对象了,所以不会执行第二个catch的回调
发表于 2021-06-30 16:30:31 回复(0)