我有一个循环中的承诺,我不知道如何传递一些范围变量到promise处理程序。
- for(var i in superarray){
- MyService.get(superarray[i].externalID).then(function(r){
- console.debug(i);
- });
MyService是一个工作服务,具有返回promise的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个元素)。
我如何传递’i’值在我的承诺范围,所以我可以使用它在then()?
可能吗?