में वादा करने के लिए वैरिएबल पास करना मेरे पास एक लूप में एक वादा है, और मुझे नहीं पता कि वादे हैंडलर में कुछ स्कोप चर कैसे पारित करें।एक लूप
for(var i in superarray){
MyService.get(superarray[i].externalID).then(function(r){
console.debug(i);
});
MyService एक काम सेवा, एक प्राप्त विधि है कि एक वादा वापसी के साथ है।
app.factory('MyService', function($http,$q) {
return {
get : function(itemID){
var deferred = $q.defer();
$http.get('/someresturl/'+itemID).then(function(e) {
deferred.resolve(e.data);
}, function(reason) {
deferred.reject(reason);
});
return deferred.promise;
}
});
मेरे कंसोल में, console.debug logicaly 1,2,3,4,5 प्रदर्शित नहीं करता है। लेकिन 5,5,5,5,5। (मेरे सुपरएरे में 5 तत्व हैं)।
मैं अपने वादे के दायरे में 'i' मूल्य कैसे पारित कर सकता हूं, इसलिए मैं इसे तब() में उपयोग कर सकता हूं?
क्या यह संभव है?
किसी को आपको यह इंगित करना चाहिए कि आपका "get" फ़ंक्शन अनावश्यक रूप से जटिल है। इसे प्रतिस्थापित किया जा सकता है: प्राप्त करें: फ़ंक्शन (itemID) {$ http.get ('/ someresturl /' + itemID) लौटाएं; } –