解决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第三课 修改元素属性及内容的代码
Mar 14 Javascript
js 获取时间间隔实现代码
May 12 Javascript
基于js实现投票的实例代码
Aug 04 Javascript
Node.js实现文件上传
Jul 05 Javascript
jquery常用的12个小功能
Jul 22 Javascript
bootstrap监听滚动实现头部跟随滚动
Nov 08 Javascript
ES6深入理解之“let”能替代”var“吗?
Jun 28 Javascript
AngualrJs清除定时器遇到的坑
Oct 13 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
Mar 14 Javascript
基于javascript的拖拽类封装详解
Apr 19 Javascript
node后端服务保活的实现
Nov 10 Javascript
JS加载解析Markdown文档过程详解
May 19 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教程之魔术方法的使用示例(php魔术函数)
2014/02/12 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
Python3 tkinter 实现文件读取及保存功能
2019/09/12 Python
Python hashlib模块加密过程解析
2019/11/05 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
python中的unittest框架实例详解
2021/02/05 Python
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
聊城大学毕业生自荐书
2014/02/01 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
安全生产责任书
2014/03/12 职场文书
生物科学专业自荐书
2014/06/20 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android
MySQL创建管理RANGE分区
2022/04/13 MySQL