javascript - Q 未处理的拒绝原因与 Q.all

标签 javascript promise q

我收到以下代码的警告,我不明白为什么。

类似于这个问题:Unhandled rejection reasons (should be empty)

但是……

我很确定我正在处理所有错误,那么为什么会出现警告?

这是 JSFiddle:http://jsfiddle.net/yoorek/jLLbR/

function run(number) {
    var deferred = Q.defer();

    if (number % 2) {
        deferred.reject(new Error('Error for ' + number));
    } else {
        deferred.resolve(number);
    }

    return deferred.promise;
}

var promises = [], data = [1, 2, 3, 4, 5];

data.forEach(function (item) {
    var promise;

    promise = run(item)
        .then(function (result) {
            log.info('Success : ' + result);
        })
        .catch (function (error) {
            log.info('Error Handler in loop ' + error.message);
        });

    promises.push(promise);
});

Q.all(promises)
    .then(function () {
        log.info('All Success');
    })
    .catch (function (error) {
        log.info('Error handler for All ' + error.message);
    });

最佳答案

这是 Q 如何处理未处理拒绝的错误。它没有很好地检测到未处理的拒绝,功能是 removed .

从 1.0.0 更新您的 Q 版本,或使用正确跟踪错误的 Bluebird。

Here's an updated fiddle

关于javascript - Q 未处理的拒绝原因与 Q.all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23128474/

相关文章:

javascript - 当运行时错误发生时,如何通过原生 Promise 触发全局 onError 处理程序?

javascript - 如何使用 AngularJS 使用 Bootstrap 警报

javascript - 如何在 Cypress 中设置/定义环境变量和 api_Server?

javascript - 如何使用 Jasmine 测试 AngularJS Controller 返回的 Promise 值?

javascript - 使用 Q promise 进行错误处理

javascript - Promise.resolve 没有参数

javascript - 使用jquery在其中按整数拆分字符串

javascript - 在 javascript 中重定向到按钮 onclick 上的新页面

javascript - 在 Promise() 中使用 while 循环

javascript - Angular 2 : Promise return