Google Chrome 中的承诺和错误处理

Promise and handling of errors in Google Chrome

我正在测试用 HTML5 Promise.

重写 som XMLHttpRequest-code

我做错了,thePromise.then(failingCode)中的代码失败了。这会调用设置 Promise.

时使用的 reject 函数

我不得不搜索一段时间才能捕获错误,因为我没有得到任何调用堆栈,也没有发生错误的行号。

那当然很不方便。

我该如何处理?我应该向 Google Chrome 开发人员发送错误报告吗?或者,是我自己的错吗?

我刚刚意识到有一种方法可以在Google Chrome中获取调用堆栈。虽然有点不方便你可以这样做:

function failingCode(arg) {
    try {
        ... the failing code ...
    } catch(e) {
        console.log("failingCode error: "+e.stack);
        debugger;
    }
}

请注意,如果您抛出错误,您需要使用 Error 函数来获取堆栈。 (简单地throw "my message"不会给堆栈。)

更新 在此处报告为 Chrome 错误:https://code.google.com/p/chromium/issues/detail?id=458306