У меня есть обещание в цикле, и я не знаю, как передать некоторые переменные области видимости в обработчик обещаний.
for(var i in superarray){
MyService.get(superarray[i].externalID).then(function(r){
console.debug(i);
});
MyService - это работающий сервис с методом get, который возвращает обещание.
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" в области моего обещания, поэтому я могу использовать его в then()?
Возможно ли это?