2014-04-17 9 views
5

साथ बिना क्रिया अस्वीकृति कारणों मैं नीचे दिए गए कोड के लिए यह चेतावनी मिलती है और मैं क्यों समझ में नहीं आता।क्यू Q.all

यह इस सवाल के समान है: Unhandled rejection reasons (should be empty)

लेकिन ...

मैं बहुत यकीन है कि मैं सभी त्रुटियों से निपटने रहा हूँ, इसलिए क्यों चेतावनी? साथ कैसे क्यू बिना क्रिया किया अस्वीकृति एक बग 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

के लिए क्या इसके लायक है, Bluebird सही ढंग से स्थिति को संभालती है। http://jsfiddle.net/YhLUW/ –

उत्तर

2

यह था:

यहाँ JSFiddle है। यह बहुत अच्छी तरह अस्वीकृति बिना क्रिया का पता नहीं चला और सुविधा removed था।

अद्यतन 1.0.0 से क्यू के अपने संस्करण, या का उपयोग Bluebird जो त्रुटि उचित ढंग से ट्रैक करता है।

Here's an updated fiddle

संबंधित मुद्दे