解决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 相关文章推荐
又一个小巧的图片预加载类
May 05 Javascript
javascript中call和apply方法浅谈
Sep 27 Javascript
js点击出现悬浮窗效果不使用JQuery插件
Jan 20 Javascript
jQuery中的pushStack实现原理和应用实例
Feb 03 Javascript
jquery实现的树形目录实例
Jun 26 Javascript
jQuery实现的无限级下拉菜单功能示例
Sep 12 Javascript
jquery对所有input type=text的控件赋值实现方法
Dec 02 Javascript
jquery滚动条插件slimScroll使用方法
Feb 09 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
Feb 13 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
js获取元素的偏移量offset简单方法(必看)
Jul 05 Javascript
关于JavaScript 中 if包含逗号表达式
Nov 27 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
mysql下创建字段并设置主键的php代码
2010/05/16 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
js工具方法弹出蒙版
2013/05/08 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
2016/05/26 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
微信小程序 获取二维码实例详解
2017/06/23 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
Python内置函数之filter map reduce介绍
2014/11/30 Python
Python基于有道实现英汉字典功能
2015/07/25 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
python主线程捕获子线程的方法
2018/06/17 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
Python: glob匹配文件的操作
2020/12/11 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
事业单位个人应聘自荐信
2013/09/21 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
教师产假请假条范文
2014/04/10 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
90行Python代码开发个人云盘应用
2021/04/20 Python
springboot临时文件存储目录配置方式
2021/07/01 Java/Android