【发布时间】:2017-06-29 06:25:05
【问题描述】:
我在教程中找到了以下代码:
promise.then(function(result){
//some code
}).catch(function(error) {
throw(error);
});
我有点困惑:catch 调用有什么作用吗?在我看来,它没有任何效果,因为它只是抛出了被捕获的相同错误。我基于常规 try/catch 的工作原理。
【问题讨论】:
-
您能提供教程的链接吗?也许还有其他有用的上下文...
-
@Igor 我不能,它在 Pluralsight 上。这可能只是一些错误处理逻辑的占位符吗?
-
这就是我的猜测,因为它只会将错误传递给调用者,这也可以通过没有捕获开始来完成。
-
@TylerDurden 我怀疑您对它作为占位符的看法是正确的。
-
@TylerDurden,我也猜它是一个占位符。也许试图演示如何格式化/规范化错误。基本上相当于
try { ... }catch(error){ throw new Error("something went wrong") }的承诺。或者表明 Promises 和 Errors 是兼容的(至少是这样)。但在目前的实现中,它只是愚蠢的。你是对的,它什么都不做,甚至不像你在 OOP 中添加的一个钩子,以便在继承类中覆盖它。我会在它做某事后立即添加 catch-block,但不是那样,不仅仅是作为占位符。
标签: javascript promise