>  기사  >  웹 프론트엔드  >  Anglejs가 여러 비동기 요청을 처리하는 방법 요약

Anglejs가 여러 비동기 요청을 처리하는 방법 요약

伊谢尔伦
伊谢尔伦원래의
2017-07-21 14:27:222052검색

실제 비즈니스에서는 다음 단계로 진행하기 전에 여러 요청이 완료될 때까지 기다려야 하는 경우가 많습니다. 그러나 Anglejs의 $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 메소드의 첫 번째 매개변수는 배열(객체)일 수 있습니다. 첫 번째 매개변수의 내용이 실행된 후, 그 다음의 메소드가 실행됩니다. 첫 번째 매개변수 메소드의 모든 반환값은 배열(객체) 형태로 전달됩니다.

아아아아

위 내용은 Anglejs가 여러 비동기 요청을 처리하는 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.