【发布时间】:2014-04-17 20:46:35
【问题描述】:
我收到以下代码的警告,但我不明白为什么。
类似这个问题: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);
});
【问题讨论】:
-
对于它的价值,Bluebird 正确地处理了这种情况。 jsfiddle.net/YhLUW
标签: javascript promise q