$ http 호출 (비동기식)이 포함 된 서비스를 두 번 호출하고 지연을 사용하여 범위 데이터를 한 번 설정하는 상황이 있습니다 두 호출을 모두 반환합니다. 이것은 잘 작동하지만, 이제는 두 호출이 모두 완료되면 (성공했거나 실패한 경우) 변수를 설정해야하며이 문제를 어떻게 해결할 것인지 확실하지 않습니다. 당신이 볼 수 있듯이, 내 두 요청이
//"use strict";
(function() {
var friendsController = function($scope, $log, friendsService)
{
// prepare the $scope
$scope.friendsData = {
community: window.community,
userId: 'someuser',
friends: {},
requests: {},
requestsUtil : {
dataLoad : true,
dataSucc : false,
dataErr : false
},
friendsUtil : {
dataLoad: true,
dataSucc: false,
dataErr: false
},
dataLoad: true,
dataSucc: false,
dataLoadDone: false
};
// util
var setStatus = function(stringType, load, succ, err) {//
$scope.friendsData[stringType].dataLoad = load;
$scope.friendsData[stringType].dataSucc = succ;
$scope.friendsData[stringType].dataErr = err;
}
// get initial request data
friendsService.getRequests(window.user.bpUser.display_name)
.then(
// success
function(data) {
if(data.friendRequests.length) {
$scope.friendsData.requests = data;
setStatus("requestsUtil", false, true, false);
} else {
setStatus("requestsUtil", false, false, true);
}
},
// error
function(data, status, headers, config) {
$log.log(data.error + ' ' + status);
setStatus("requestsUtil", false, false, true);
});
// get initial friends data
friendsService.getFriends(window.user.bpUser.display_name)
.then(
// success
function(data) {
if(data.friends.length) {
$scope.friendsData.friends = data;
setStatus("friendsUtil", false, true, false);
} else {
setStatus("friendsUtil", false, false, true);
}
},
// error
function(data, status, headers, config) {
$log.log(data.error + ' ' + status);
setStatus("friendsUtil", false, false, true);
scope.friendsData.loadDone = true;
});
$scope.friendsData.dataLoad = false;
$scope.friendsData.dataSucc = true;
};
Profile.controller('profile.friendsController', ['$scope', '$log', 'friendsService', friendsController]);
})();
:
friendsService.getRequests(window.user.bpUser.display_name)
.then(
과 :
friendsService.getFriends(window.user.bpUser.display_name)
.then(
가 어쨌든 나는 몇 가지 기능을 추가 할 수 있습니다 여기
내 코드입니다 이 두 호출이 모두 완료되었는지 확인하고, 그렇다면 범위에서 이것을 캡처 할 변수를 설정 하시겠습니까? 감사