チェーン内で複数の Ajax 呼び出しを行いたいと考えています。しかし、次の呼び出しを行う前に、各呼び出しの後にデータをマッサージしたいと思います。最後に、すべての呼び出しが成功したら、他のコードを実行したいと思います。
私は Ajax 呼び出しに Angular $http サービスを使用しており、それに固執したいと考えています。
出来ますか?
チェーン内で複数の Ajax 呼び出しを行いたいと考えています。しかし、次の呼び出しを行う前に、各呼び出しの後にデータをマッサージしたいと思います。最後に、すべての呼び出しが成功したら、他のコードを実行したいと思います。
私は Ajax 呼び出しに Angular $http サービスを使用しており、それに固執したいと考えています。
出来ますか?
受け入れられた答えは良いですが、それはキャッチを説明しておらず、最終的にケーキにアイシングを加える方法を説明していません. 約束に関するこの素晴らしい記事は、私をまっすぐにしました。その記事に基づいたサンプルコードを次に示します。
$scope.spinner.start();
$http.get('/whatever/123456')
.then(function(response) {
$scope.object1 = response.data;
return $http.get('/something_else/?' + $scope.object1.property1);
})
.then(function(response) {
$scope.object2 = response.data;
if ($scope.object2.property88 == "a bad value")
throw "Oh no! Something failed!";
return $http.get('/a_third_thing/654321');
})
.then(function(response) {
$scope.object3 = response.data;
})
.catch(function(error) {
// this catches errors from the $http calls as well as from the explicit throw
console.log("An error occured: " + error);
})
.finally(function() {
$scope.spinner.stop();
});