I have a promise in a loop, and I don\'t know how to pass some scope variables into the promise handler.
for(var i in superarray){
MyService.get(superarray[i
I would have just commented on the accepted solution but I don't currently have enough reputation.
I think that the second solution of repeating the itemID back as a property of r would work just fine as well.
simple promise handler:
angular.module('myApp', []).run(['MyService', function(MyService) {
superarray = [1, 2, 3, 4, 5];
for(var i in superarray) {
MyService.get(superarray[i]).then(function(returned) {
console.log(returned.id);
});
}
}]);
MyService returning itemID as a property of the returned object:
angular.module('myApp')
.factory('MyService', function($http,$q) {
return {
get : function(itemID){
var deferred = $q.defer();
$http.get('www.google.com').then(function(e) {
var returnObject = {
'data': e.data,
'id': itemID
};
deferred.resolve(returnObject);
}, function(reason) {
deferred.resolve(reason);
});
return deferred.promise;
}
}});
Here is a working example on plnkr.