解决Angularjs异步操作后台请求用$q.all排列先后顺序问题


Posted in Javascript onNovember 29, 2019

最近我在做angularjs程序时遇到了一个问题

1.页面有很多选择框,一个选择框里面有众多的选择项,和一个默认选定的项,像下面这样(很多选择框,不只一个):

解决Angularjs异步操作后台请求用$q.all排列先后顺序问题

2.众多的选项要从后台接口得到,默认项从另一个后台接口得到,这就需要$promise.then()操作

3.而多个$promise.then()属于异步操作,先后顺序不是一定的,如果先得到众多选项,后得到默认值,显示就没有问题,如果顺序颠倒,默认项就会为空,这不是我想要的

4.这就需要众多选项的后台请求都获得完,才去后台请求默认值,

就用$q.all方法

let list = $q.all({    // 多个后台请求,部分先后顺序
 url1: getUrl1().$promise,
 url2: getUrl2().$promise,
 url3: getUrl3().$promise,
});
$scope.list.then(function (result) {
// 三个后台请求结果
 result.url1
 result.url2
 result.url3
}).finally(function () {  // finally的优点:1.无论成功失败都会执行 2.前面三个请求结束后才会执行
 // 最后一个后台请求

 // TODO
});

补充:当然还有then().then().then()......这种方法,就把请求顺序执行了,不过select众多选项的后台请求不需要先后顺序,只是默认项需要最后执行,我就选择$q.all这种方法了。

总结

以上所述是小编给大家介绍的解决Angularjs异步操作后台请求用$q.all排列先后顺序问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
利用JQuery和JS实现奇偶行背景颜色自定义效果
Nov 19 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
Jan 09 Javascript
JS动态调用方法名示例介绍
Dec 18 Javascript
Ext GridPanel加载完数据后进行操作示例代码
Jun 17 Javascript
jquery实现手风琴效果
Nov 20 Javascript
基于JavaScript实现百度搜索框效果
Jun 28 Javascript
js最简单的双向绑定实例讲解
Jan 02 Javascript
解决vue-router中的query动态传参问题
Mar 20 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
Sep 26 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
Oct 11 Javascript
javascript实现简单打字游戏
Oct 29 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
Apr 08 Javascript
vue 组件开发原理与实现方法详解
Nov 29 #Javascript
vue ajax 拦截原理与实现方法示例
Nov 29 #Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
Nov 29 #Javascript
js中关于Blob对象的介绍与使用
Nov 29 #Javascript
js blob类型url的视频下载问题的解决
Nov 29 #Javascript
JavaScript之Blob对象类型的具体使用方法
Nov 29 #Javascript
VuePress 中如何增加用户登录功能
Nov 29 #Javascript
You might like
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
javascript 常用关键字列表集合
2007/12/04 Javascript
js 加载时自动调整图片大小
2008/05/28 Javascript
js常用代码段整理
2011/11/30 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
Python 通过URL打开图片实例详解
2017/06/01 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
深入浅析Python中的迭代器
2019/06/04 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
通过实例解析python and和or使用方法
2020/11/14 Python
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
房产转让协议书
2014/04/11 职场文书
节电标语大全
2014/06/23 职场文书
反腐倡廉标语
2014/06/24 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
2014年实习期工作总结
2014/11/27 职场文书
学生会个人总结范文
2015/02/15 职场文书
文明礼仪倡议书
2015/04/28 职场文书
个人原因辞职信模板
2015/05/13 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL
Redis实现一个账号只能登录一个设备
2022/04/19 Redis
python中pycryto实现数据加密
2022/04/29 Python
Golang 入门 之url 包
2022/05/04 Golang