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