मैंने angularjs में $ q.all लागू किया है, लेकिन मैं कोड का काम नहीं कर सकता। यहाँ मेरा कोड है:
UploadService.uploadQuestion = function(questions){
var promises = [];
for(var i = 0 ; i < questions.length ; i++){
var deffered = $q.defer();
var question = questions[i];
$http({
url : 'upload/question',
method: 'POST',
data : question
}).
success(function(data){
deffered.resolve(data);
}).
error(function(error){
deffered.reject();
});
promises.push(deffered.promise);
}
return $q.all(promises);
}
और यहाँ मेरा नियंत्रक है जो सेवाओं को कॉल करता है:
uploadService.uploadQuestion(questions).then(function(datas){
//the datas can not be retrieved although the server has responded
},
function(errors){
//errors can not be retrieved also
})
मुझे लगता है कि मेरी सेवा में $ q.all स्थापित करने में कुछ समस्या है।
@ themyth92 क्या आपने मेरे समाधान की कोशिश की है?
—
इलन फ्रुमर
मैंने कोशिश की है और दोनों विधि मेरे मामले पर काम करती है। लेकिन मैं सही उत्तर के रूप में @Llan Frumer बनाऊंगा। वास्तव में आप दोनों को धन्यवाद।
—
उनहैत92
आप मौजूदा वादे का वादा क्यों कर रहे हैं? $ http पहले से ही एक वादा लौटाता है। $ Q.defer का उपयोग बहुत ही शानदार है।
—
पीट एल्विन
यह
—
क्रिस्टोफ़ Roussy
deferred
नहीं है deffered
:)
then(datas)
? इसे बस करने का प्रयासpush
करें:promises.push(deffered);