1

我尝试使用带有 Promise 模式而不是回调的 Zombie.js。唯一的问题是,当页面的 javascript 上发生任何 javascript 错误(甚至是不相关的错误)时,promise 将被拒绝,而不是继续链。我不能只禁用该页面的脚本执行,因为它对我正在做的事情很重要。

有谁知道这个问题的任何解决方案?

非常感谢你。

4

2 回答 2

5

为什么不抓住失败并继续?

functionReturnsPromiseMightThrowError
    .then(
        null,
        function(e) {
            console.log("An error occurred deep within func", e, "continuing");
        }
    )
    .then(doOtherStuff)
;

关键是,拒绝处理程序(如果存在)将被调用,但生成的 promise 被认为已实现(毕竟,错误现在已“成功”处理),随后then的 s 将调用它们的成功处理程序。

于 2013-11-10T05:02:38.017 回答
-2

在有错误的地方使用 try/catch 块 http://www.w3schools.com/js/js_errors.asp

于 2013-11-06T10:55:58.393 回答