나는 angularjs를 사용하여 스터브 개발을하고 있습니다. 내 스텁은 서버의 JSON 파일입니다. 그래서, 나는 스텁을 얻기 위해 "스텁"함수 내에서 $ http 호출을하고있다. 그러나 $ http가 비동기이기 때문에 whenGET은 빈 데이터를 항상 리턴합니다 (http가 완료되기를 기다리지 않습니다). 이 주제에 대한 현재의 질문을 조사했습니다. 이들은 HTTP 호출의 리턴 값을 범위 데이터 모델에 할당하는 접근법을 제공합니다. http 요청이 완료된 후 데이터를 반환하고 싶습니다. 아래는 코드입니다.
stubbedOstnApp.run(['$httpBackend','$http',function($httpBackend, $http){
var tempData;
var get = function(){
return $http.get('../test/data/program-categories.json').then(function(data){
tempData = data.data;
console.log(tempData);
return tempData;
})
};
get();
console.log(tempData);
$httpBackend.whenGET('lookup/program-categories').respond(tempData);
$httpBackend.whenGET(/^views\//).passThrough();
$httpBackend.whenGET(/^\.\.\/test\/data\//).passThrough();
}]);
기본적으로 tempData가 채워질 때까지 기다려야합니다. get 함수 내의 tempData는 whenGET 메서드가 실행 된 후 콘솔에 기록됩니다.
그것은 효과가있다. 감사! – Srik