解决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 相关文章推荐
解析arp病毒背后利用的Javascript技术附解密方法
Aug 06 Javascript
js 创建书签小工具之理论
Feb 25 Javascript
JavaScript实现获取dom中class的方法
Feb 09 Javascript
超赞的动手创建JavaScript框架的详细教程
Jun 30 Javascript
jQuery无刷新分页完整实例代码
Oct 27 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
Jun 20 Javascript
jQuery 插件实现随机自由弹跳气泡样式
Jan 12 Javascript
JS设计模式之访问者模式定义与用法分析
Feb 05 Javascript
Windows下Node爬虫神器Puppeteer安装记
Jan 09 Javascript
在NPM发布自己造的轮子的方法步骤
Mar 09 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
Mar 11 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
Apr 21 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调用JAVA的WebService简单实例
2014/03/11 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
js简单实现图片延迟加载的方法
2016/07/19 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
使用canvas进行图像编辑的实例
2017/08/29 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
wxPython框架类和面板类的使用实例
2014/09/28 Python
python根据文件大小打log日志
2014/10/09 Python
Python Sleep休眠函数使用简单实例
2015/02/02 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
数字漫画:comiXology
2020/06/13 全球购物
Unix/Linux开发面试题
2016/08/16 面试题
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
大学生先进事迹材料
2014/02/16 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
JavaScript阻止事件冒泡的方法
2021/12/06 Javascript