Heim > Web-Frontend > js-Tutorial > Hauptteil

Zusammenfassung der AngularJS-Methoden zur Verarbeitung mehrerer asynchroner Anfragen_AngularJS

WBOY
Freigeben: 2016-05-16 16:22:00
Original
1138 Leute haben es durchsucht

In der Praxis ist es oft notwendig, auf die Erledigung mehrerer Anfragen zu warten, bevor mit dem nächsten Schritt fortgefahren wird. Aber $http in AngularJS unterstützt keine synchronen Anfragen.

Lösung 1:

Code kopieren Der Code lautet wie folgt:

$http.get('url1').success(function (d1) {
           $http.get('url2').success(function (d2) {
​​​​​​ //Verarbeitungslogik
        });
});

Lösung 2:

Die darin enthaltenen Methoden werden der Reihe nach ausgeführt.

Code kopieren Der Code lautet wie folgt:

var app = angle.module('app',[]);
app.controller('promiseControl',function($scope,$q,$http) {
Funktion 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');
});
});

Lösung drei:

Der erste Parameter der $q.all-Methode kann ein Array (Objekt) sein. Nachdem der Inhalt des ersten Parameters ausgeführt wurde, wird die Methode darin ausgeführt. Alle Rückgabewerte der ersten Parametermethode werden in Form von Arrays (Objekten) übergeben.

Code kopieren Der Code lautet wie folgt:

var app = angle.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);
        angle.forEach(arr,function(d){
console.log(d);
console.log(d.data);
})
});
});

Im Internet gibt es viele Tutorials zur detaillierten Verwendung von $q. Ich bin auch neu darin. Wenn du nicht gut sprichst, traust du dich nicht, Unsinn zu sagen. Der obige Code wurde nach meinem Verständnis geschrieben und wurde ohne Probleme getestet.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage