【发布时间】:2014-09-11 08:43:33
【问题描述】:
我想知道如何使用 finally 链接 Q 上的错误。
考虑下面的代码
function p1() {
throw new Error("p1 error");
}
function p2() {
throw new Error("p2 error");
}
function p3() {
return Q.fcall(p1)
.finally(function () {
return Q.fcall(p2);
});
}
p3()
.done();
带有消息“p1 错误”的错误丢失,因为它被错误“p2 错误”覆盖。如何抛出所有错误(或合并错误)?
目前,我正在处理 nodejs 上的套接字连接。我使用 .finally() 在每次连接后关闭套接字。
但是,.finally() 之前的错误(例如:身份验证错误)将被 .finally() 中的一个覆盖(例如:连接关闭错误)。所以,我想知道如何获取所有错误
谢谢
【问题讨论】:
-
谢谢,但该链接对我的主题不是很有帮助。这个博客告诉你如何在 Promise 链之外捕获错误,而不是在链内的每个 then() 上放置错误处理程序。这样做的效果类似于通过抛出错误来终止中间的链。然而,我的案例是关于 finally() 的棘手部分。 finally() 拦截原始错误并将其替换为新错误。
标签: javascript promise q