以下のコードでは、else ifでhttp呼び出しが行われ、コントロールは次の場所(別のコントローラ)に移動します。 http呼び出しが完了してからreponse.dataが達成された部分に行き、コードの次の部分に行く方法はありますか?私はいくつかのステップを経て、reponse.dataの部分に来るだろうが、コールが行われた直後にそれが起こることを望んでいる。応答が得られるまでHTTPコールアングルが待機していません。
return $q(function(resolve, reject) {
//var testEnv = envService.environment == 'development' || envService.environment == 'ci';
testEnv = false;
if(testEnv) {
var user = _.find(self.getHardCodedUsers(), function(u) { return u.id == id; });
if(user) {
resolve(user);
} else {
reject('No user was found');
}
}
else if($rootScope.plannerRedirect){
var url = SessionService.jsonUrl();
$http({
url: url + '/user/plannerclient/profile/' + id,
method: "GET",
headers: {
'Authorization': 'Bearer ' + self.getToken()
}
}).then(
function(response) {
if(response.data) {
resolve(response.data);
} else {
reject('No user was found');
}
}, function errorCallback(response) {
reject('Sorry, the query could not be performed. Please check your network connection.');
});
}
else {
var url = SessionService.jsonUrl();
$http({
url: url + '/user/profile/' + id,
method: "GET",
headers: {
'Authorization': 'Bearer ' + self.getToken()
}
}).then(
function(response) {
if(response.data) {
resolve(response.data);
} else {
reject('No user was found');
}
}, function errorCallback(response) {
reject('Sorry, the query could not be performed. Please check your network connection.');
});
}
});
編集ありがとう、 –