概述
最近我在做angularjs程序时遇到了一个问题
1.页面有很多选择框,一个选择框里面有众多的选择项,和一个默认选定的项,像下面这样(很多选择框,不只一个):
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排列先后顺序问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对靠谱客网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
最后
以上就是神勇冬天为你收集整理的解决Angularjs异步操作后台请求用$q.all排列先后顺序问题的全部内容,希望文章能够帮你解决解决Angularjs异步操作后台请求用$q.all排列先后顺序问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复