【发布时间】:2015-04-26 02:30:49
【问题描述】:
我尝试使用带有 Promise 模式而不是回调的 Zombie.js。唯一的问题是,当页面的 javascript 上发生任何 javascript 错误(甚至是不相关的错误)时,promise 将被拒绝,而不是继续链。我不能只禁用该页面的脚本执行,因为它对我正在做的事情很重要。
有人知道这个问题的解决方案吗?
非常感谢。
【问题讨论】:
标签: javascript promise zombie.js
我尝试使用带有 Promise 模式而不是回调的 Zombie.js。唯一的问题是,当页面的 javascript 上发生任何 javascript 错误(甚至是不相关的错误)时,promise 将被拒绝,而不是继续链。我不能只禁用该页面的脚本执行,因为它对我正在做的事情很重要。
有人知道这个问题的解决方案吗?
非常感谢。
【问题讨论】:
标签: javascript promise zombie.js
为什么不捕获失败并继续?
functionReturnsPromiseMightThrowError
.then(
null,
function(e) {
console.log("An error occurred deep within func", e, "continuing");
}
)
.then(doOtherStuff)
;
关键是,拒绝处理程序(如果存在)将被调用,但生成的 promise 被认为已经实现(毕竟,错误现在已经“成功”处理),随后的thens将调用他们的成功处理程序。
【讨论】:
在出现错误的地方使用 try/catch 块 http://www.w3schools.com/js/js_errors.asp
【讨论】: