실제 비즈니스에서는 다음 단계로 진행하기 전에 여러 요청이 완료될 때까지 기다려야 하는 경우가 많습니다. 그러나 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!