2017-12-10 7 views
0

내 AngularJS와 응용 프로그램에서, 나는 다음과 같은 변수가 ?함수 반환 기적 Lodash

이 나는 ​​시도했다 :

var mealsDeferred = $q.defer(); 
var meals = mealsDeferred.resolve(getUpdatedMeals()); 

function getUpdatedMeals() { 
    _.times(mealCount, function(index) { 
     return new MealPlanResource({ 
     dayId:     dayId, 
     userFriendlyMealNumber: index + 1, 
     items:     [], 
     }); 
    }); 
    } 

뿐만 아니라 :

var meals; 
setTimeout(function() { 
    _.times(mealCount, function(index) { 
     return new MealPlanResource({ 
     dayId:     dayId, 
     userFriendlyMealNumber: index + 1, 
     items:     [], 
     }); 
    }); 
}, 100); 

을 모두 '미정'으로 식사를 반환한다.

답변

1

_.times() 함수가 LoDash 인 것으로 가정하면 코드는 그대로 작동해야합니다.

_.times()동기 기능입니다. 비동기 적이 아닙니다. 값을 반환하기 전에 모든 실행을 완료합니다. 당신은 약속을 사용할 필요가 없으며, 당신에게 좋은 일을하지 않을 것입니다.

function MealPlanResource(args) { 
 
    _.assign(this, args); 
 
} 
 

 
var mealCount = 3; 
 
var dayId = 1; 
 

 
var meals = _.times(mealCount, function(index) { 
 
    return new MealPlanResource({ 
 
     dayId: dayId, 
 
     userFriendlyMealNumber: index + 1, 
 
     items: [], 
 
    }); 
 
}); 
 
    
 
console.log(meals);
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js"></script>

당신이 당신의 실제 코드와 비교해 아마도 다른 무엇을 볼 수 있습니다 여기에

는 코드의 작동 예입니다?

+0

정확합니다. 내 문제는 코드의 다른 부분에 있습니다. 고맙습니다. – user3143105