Home > Web Front-end > JS Tutorial > body text

Summary of how angularjs handles multiple asynchronous requests

伊谢尔伦
Release: 2017-07-21 14:27:22
Original
2072 people have browsed it

In actual business, it is often necessary to wait for several requests to be completed before proceeding to the next step. But $http in angularjs does not support synchronous requests.

Solution one:

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

Solution two:

The methods in then will be executed in order.

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');
    });
});
Copy after login

Solution 3:

The first parameter of the $q.all method can be an array (object). After the contents in the first parameter are executed, the method in then will be executed. All return values ​​of the first parameter method will be passed in in the form of arrays (objects).

var app = angular.module('app',[]);
app.controller('promiseControl',function($scope,$q,$http) {
    $q.all({first: $http.get('json1.txt'),second: $http.get('json2.txt')}).then(function(arr){
        console.log(arr);
        angular.forEach(arr,function(d){
            console.log(d);
            console.log(d.data);
        })
    });
});
Copy after login

The above is the detailed content of Summary of how angularjs handles multiple asynchronous requests. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template