ホームページ  >  記事  >  ウェブフロントエンド  >  angularjs が複数の非同期リクエストを処理する方法の概要

angularjs が複数の非同期リクエストを処理する方法の概要

伊谢尔伦
伊谢尔伦オリジナル
2017-07-21 14:27:222073ブラウズ

実際のビジネスでは、次のステップに進む前に、いくつかのリクエストが完了するまで待つ必要があることがよくあります。ただし、angularjs の $http は同期リクエストをサポートしていません。

解決策 1:

$http.get('url1').success(function (d1) {
        $http.get('url2').success(function (d2) {
            //处理逻辑
        });
    });

解決策 2:

その後、メソッドが順番に実行されます。

var app = angular.module('app',[]);
app.controller('promiseControl',function($scope,$q,$http) {
    function getJson(url){
        var deferred = $q.defer();
        $http.get(url)
            .success(function(d){
                d = parseInt(d);
                console.log(d);
                deferred.resolve(d);
            });
        return deferred.promise;
    }
    getJson('json1.txt').then(function(){
        return getJson('json2.txt');
    }).then(function(){
        return getJson('json1.txt');
    }).then(function(){
        return getJson('json2.txt');
    }).then(function(d){
        console.log('end');
    });
});

解決策 3:

$q.all メソッドの最初のパラメーターは配列 (オブジェクト) にすることができます。最初のパラメータの内容が実行された後、then のメソッドが実行されます。最初のパラメーターのメソッドの戻り値はすべて、配列 (オブジェクト) の形式で渡されます。

りー

以上がangularjs が複数の非同期リクエストを処理する方法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。