我尝试使用带有promises模式的Zombie.js而不是回调。唯一的问题是,当页面的javascript上发生任何javascript错误(甚至是非相关的错误)时,承诺将被拒绝,而不是继续链。我不能只禁用该页面的脚本执行,因为它对我正在做的事情很重要。
有没有人知道这个问题的解决方案?
非常感谢。
答案 0 :(得分:5)
为什么不抓住失败并继续?
functionReturnsPromiseMightThrowError
.then(
null,
function(e) {
console.log("An error occurred deep within func", e, "continuing");
}
)
.then(doOtherStuff)
;
关键在于,将调用拒绝处理程序(如果存在),但结果承诺被认为已经完成(毕竟,错误现在已经“成功”处理),以及随后的{{1} } s将调用他们的成功处理程序。
答案 1 :(得分:-2)
在有错误的位置使用try / catch块 http://www.w3schools.com/js/js_errors.asp