Ringkasan kaedah angularjs untuk mengendalikan berbilang permintaan tak segerak_AngularJS

WBOY
Lepaskan: 2016-05-16 16:22:00
asal
1114 orang telah melayarinya

Dalam perniagaan sebenar, selalunya perlu menunggu beberapa permintaan untuk diselesaikan sebelum meneruskan ke langkah seterusnya. Tetapi $http dalam angularjs tidak menyokong permintaan segerak.

Penyelesaian 1:

Salin kod Kod adalah seperti berikut:

$http.get('url1').success(fungsi (d1) {
           $http.get('url2').success(fungsi (d2) {
//Memproses logik
});
});

Penyelesaian 2:

Kaedah dalam kemudian akan dilaksanakan mengikut tertib.

Salin kod Kod adalah seperti berikut:

var app = angular.module('app',[]);
app.controller('promiseControl',function($scope,$q,$http) {
Fungsi getJson(url){
      var tertunda = $q.defer();
$http.get(url)
            .kejayaan(fungsi(d){
            d = parseInt(d);
console.log(d);
                   ditangguhkan.resolve(d);
            });
          pemulangan tertunda.janji;
}

getJson('json1.txt').then(function(){
          return getJson('json2.txt');
}).kemudian(fungsi(){
          return getJson('json1.txt');
}).kemudian(fungsi(){
          return getJson('json2.txt');
}).kemudian(fungsi(d){
console.log('end');
});
});

Penyelesaian tiga:

Parameter pertama kaedah $q.all boleh menjadi tatasusunan (objek). Selepas kandungan dalam parameter pertama dilaksanakan, kaedah dalam kemudian akan dilaksanakan. Semua nilai pulangan kaedah parameter pertama akan dihantar dalam bentuk tatasusunan (objek).

Salin kod Kod adalah seperti berikut:

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);
})
});
});

Terdapat banyak tutorial di Internet untuk penggunaan terperinci $q. Saya pun baru tahu. Kalau tak pandai cakap, tak berani nak cakap bukan-bukan. Kod di atas ditulis mengikut pemahaman saya, dan ia telah diuji tanpa sebarang masalah.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!