2014-04-17 5 views
5

Ich bekomme diese Warnung für Code unten und ich verstehe nicht warum.Q unbehandelt Ablehnung Gründe mit Q.all

Es ist ähnlich wie diese Frage: Unhandled rejection reasons (should be empty)

aber ...

Ich bin mir ziemlich sicher, dass ich alle Fehler am Umgang, also warum die Warnung? Hier

ist 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); 
    }); 
+0

Für was es wert ist, Bläuling die Situation richtig behandelt. http://jsfiddle.net/YhLUW/ –

Antwort

2

Das war ein Fehler, mit wie Q tat nicht behandelte Ablehnungen. Es hat keine unbehandelten Ablehnungen erkannt und das Feature war removed.

Aktualisieren Sie Ihre Version von Q von 1.0.0, oder verwenden Sie Bluebird, die Fehlerverfolgung richtig durchführt.

Here's an updated fiddle