angularjs 處理多個(gè)異步請(qǐng)求方法匯總
在實(shí)際業(yè)務(wù)中經(jīng)常需要等待幾個(gè)請(qǐng)求完成后再進(jìn)行下一步操作。但angularjs中$http不支持同步的請(qǐng)求。
解決方法一:
$http.get('url1').success(function (d1) {
$http.get('url2').success(function (d2) {
//處理邏輯
});
});
解決方法二:
then中的方法會(huì)按順序執(zhí)行。
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');
});
});
解決方法三:
$q.all方法第一個(gè)參數(shù)可以是數(shù)組(對(duì)象)。在第一參數(shù)中內(nèi)容都執(zhí)行完后就會(huì)執(zhí)行then中方法。第一個(gè)參數(shù)的方法的所有返回值會(huì)以數(shù)組(對(duì)象)的形式傳入。
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);
})
});
});
$q的詳細(xì)使用方法網(wǎng)上的有很多教程。我也是剛接觸。講不好,不敢亂講。上面的代碼是我按我的理解寫的,經(jīng)過(guò)了測(cè)試沒(méi)有問(wèn)題。
- Node.js模擬發(fā)起http請(qǐng)求從異步轉(zhuǎn)同步的5種用法
- 原生JavaScript實(shí)現(xiàn)Ajax異步請(qǐng)求
- JavaScript利用fetch實(shí)現(xiàn)異步請(qǐng)求的方法實(shí)例
- 原生JS發(fā)送異步數(shù)據(jù)請(qǐng)求
- 詳解Vuejs2.0之異步跨域請(qǐng)求
- SpringMVC環(huán)境下實(shí)現(xiàn)的Ajax異步請(qǐng)求JSON格式數(shù)據(jù)
- jquery的ajax異步請(qǐng)求接收返回json數(shù)據(jù)實(shí)例
- JS多個(gè)異步請(qǐng)求 按順序執(zhí)行next實(shí)現(xiàn)解析
相關(guān)文章
AngularJS實(shí)現(xiàn)星星等級(jí)評(píng)分功能
這篇文章主要為大家詳細(xì)介紹了AngularJS實(shí)現(xiàn)星星等級(jí)評(píng)分功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
AngularJS驗(yàn)證信息框架的封裝插件用法【w5cValidator擴(kuò)展插件】
這篇文章主要介紹了AngularJS驗(yàn)證信息框架的封裝插件用法,分析了AngularJS表單驗(yàn)證規(guī)則并實(shí)例說(shuō)明了w5cValidator擴(kuò)展插件的相關(guān)使用技巧,需要的朋友可以參考下2016-11-11
基于angular實(shí)現(xiàn)樹(shù)形二級(jí)表格
這篇文章主要介紹了angular手寫樹(shù)形二級(jí)表格的完整代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
AngularJS基礎(chǔ) ng-model-options 指令簡(jiǎn)單示例
本文主要介紹AngularJS ng-model-options 指令,這里對(duì)ng-model-options指令的基本資料進(jìn)行整理,有需要的小伙伴可以參考下2016-08-08
AngularJS基于ui-route實(shí)現(xiàn)深層路由的方法【路由嵌套】
這篇文章主要介紹了AngularJS基于ui-route實(shí)現(xiàn)深層路由的方法,涉及AngularJS路由嵌套操作相關(guān)實(shí)現(xiàn)步驟與技巧,需要的朋友可以參考下2016-12-12

