Mam obietnicę w pętli i nie wiem, jak przekazać niektóre zmienne zasięgu do obsługi obietnicy.Przekazywanie zmiennej do obietnicy w pętli
for(var i in superarray){
MyService.get(superarray[i].externalID).then(function(r){
console.debug(i);
});
MyService to działająca usługa, z metodą get, która zwraca obietnicę.
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;
}
});
W mojej konsoli, logiczna konsola console.debug nie wyświetla 1,2,3,4,5. Ale 5,5,5,5,5. (w moim superarrayu jest 5 elementów).
Jak mogę przekazać wartość "i" w moim zakresie obietnicy, więc mogę go używać w tym()?
Czy to możliwe?
Ktoś powinien ci powiedzieć, że twoja funkcja "get" jest niepotrzebnie skomplikowana. Można go zastąpić przez: get: function (itemID) {return $ http.get ('/ someresturl /' + itemID); } –