Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从ui获取数组-在循环中包含两个异步调用的路由器解析

从ui获取数组-在循环中包含两个异步调用的路由器解析
EN

Stack Overflow用户
提问于 2018-07-04 12:14:30
回答 1查看 28关注 0票数 1

我正在尝试从AngularJS (使用Firebase)中的UI路由器解析中获取数组。

该数组包含来自不同俱乐部的会员费。俱乐部费用在不同的时间变化,因此需要将特定时间点的正确费用推送到数组中。

在for循环中循环遍历clubs。

对于每个俱乐部:

首先(异步地)获取每个俱乐部的时间范围。每个time range都是一个显示特定费用(date_active和date_ends)的时间的对象。时间范围本质上是包含费用的数据库的其他部分的索引。

然后在时间范围内(同步)找到当前日期的正确时间范围。

然后,使用正确的时间范围来获得该特定时间内该特定俱乐部的费用(异步)。

我不确定如何在resolve函数中构造我的承诺,以确保在加载状态之前可以创建和返回费用数组。

我故意在代码中忽略了所有的$q promise处理,这样比我更了解的人插入起来会更容易!是两次异步呼叫让我抓狂。

非常感谢!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.state('whatever')
    resolve: {
        'clubsResolve' : clubsResolve //Assume clubs have been loaded
        'feeResolve': feeResolve
    }


function feeResolve(clubs){

    var allFees = [];

    for(var i=0; i < clubs.length; i++){

        (function(i){

            var club = clubs[i];

            var timeRanges = $firebaseArray(db.child.('timeRanges').child(club.name));

            timeRanges.$loaded().then(function(){

                //I have omitted the details of this function
                var correctTimeRange = getCorrectTimeRange(timeRanges, new Date())

                var fee = $firebaseObject(db.child(club.name).child(correctTimeRange.date_active));

                fee.$loaded().then(function(){

                    allFees.push(fee);
                })
            })

        })(i);
    }

    return allFees;

}
EN

回答 1

Stack Overflow用户

发布于 2018-07-04 13:37:04

您可以将$q服务与递归函数结合使用,并在获得所有提要数据后对其进行解析。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.state('whatever')
resolve: {
    'clubsResolve' : clubsResolve //Assume clubs have been loaded
    'feeResolve': feeResolve
}


function feeResolve(clubs) {

    return $q((resolve, reject), function () {

        var allFees = [];

        function getClubFees(clubs) {
            var club = clubs[1];
            var timeRanges = $firebaseArray(db.child.('timeRanges').child(club.name));
            timeRanges.$loaded().then(
                function (timeRange) {
                    var fee = $firebaseObject(db.child(club.name).child(timeRange.date_active));
                    fee.$loaded().then(
                        function (fee) {
                            allFees.push(fee);
                            clubs.shift()
                            if (clubs.length) {
                                getClubFees(clubs)
                            }
                            else {
                                resolve(allFees)
                            }
                        },
                        function (error) {
                            reject('failed to get fee for ' + club + timeRange);
                        })
                },
                function (error) {
                    reject('failed to get fee for ' + club.name);
                })

        }
        getClubFees(clubs)
    })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51173466

复制
相关文章
循环中的异步&&循环中的闭包
foo函数下的index输出5,全局下的index不存在 现在我们把var 换为let
陌上寒
2019/04/02
1.6K0
循环中的异步&&循环中的闭包
获取两个list中相互不包含的部分
代码如下:提供了几种方法(自个写的) import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; class Scratch { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.a
阿超
2022/08/21
1.6K0
获取两个list中相互不包含的部分
近期问题: jq循环中异步请求问题
今天开发遇到了一个问题, 页面中的列表是通过循环ajax进行请求的,最后需要对请求结束的数据进行判断和统计,所以就存在异步问题,当然不用ES6, 一开始想的是用 async:false, 使用后发现,卡屏... 看到有个$.when(), 也不适用,不可能每个ajax都搞个变量... 请求代码如下:
治电小白菜
2020/08/25
1K0
近期问题: jq循环中异步请求问题
Js 数组深拷贝及 splice() 在 for 循环中的使用整理、建议
背景 最近在涉猎 【React】 前端框架知识时; 更多的精力会放在对 JS 的数据处理上 并且, 在业务中会经常使用数组操作 显然, 对不熟悉前端开发的小伙伴,会很容易入坑的 ——
泥豆芽儿 MT
2021/09/06
2.4K0
java 两个数组求并集_Java程序获取两个数组的并集
在本文中,您将学习如何在java中获得两个数组的并集。 并集是两个集合或所有集合中的所有值。
用户7886150
2021/04/28
1.6K0
怎样从数组中删除给定元素_java数组包含某个元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169528.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
5.1K0
怎样从数组中删除给定元素_java数组包含某个元素
SwiftU:在循环中创建视图
通常在一个循环中创建多个SwiftUI视图。例如,我们可能想要遍历一系列名称,并让每个名称成为文本视图,或者遍历一系列菜单项,并将每个名称显示为图像。
韦弦zhy
2020/03/20
2.2K0
使用GuzzleHttp从HTTP调用获取cookie的值
- 发送登录请求以后想看Cookies的值,文档只提供直接使用Cookie没有查看值的介绍,下面给大家讲一下实现代码。 实现代码
axiomxs
2021/11/26
4.5K0
Rust:从嵌套循环中退出
在C语言中,我们常用goto语句来在错误条件下跳转到函数的数据清理部分。这种用法的好处尤其体现在“错误发生在嵌套循环”的时候,我们不用每一层循环都加一个标志位,逐级退出。
灯珑LoGin
2022/11/16
1.4K0
从Python调用堆栈获取行号等信息
程序中的日志打印,或者消息上传,比如kafka消息等等。经常上传的消息中需要上传堆栈信息中的文件名、行号、上层调用者等具体用于定位的消息。Python提供了以下两种方法:
职场亮哥
2020/10/10
2.6K0
uni-app如何解决在for循环里调用异步请求获取数据顺序混乱问题?
先前有一次做uni-app的js接口对接时,遇到过这样的情况,在for循环里,调用一个异步请求时,返回来的值顺序是乱的,因此,在以下的代码里,push到数组里的值,每次的顺序可能都是不一样的,造成这样一个原因,是for循环是单线程的,异步请求是多线程的,f往往在for循环结束了,异步请求还没有结束。
朱季谦
2019/09/18
4.6K1
异步调用
同步调用,即:程序按定义的顺序依次执行的过程,每一行代码执行过程必须等待上一行代码执行完毕后才执行。而异步调用指:程序在执行时,无需等待执行的返回值可继续执行后面的代码。回调。其主要是解决异步方法执行结果的处理方法,比如在希望异步调用结束时返回执行结果,这个时候就可以考虑使用回调机制。
全栈程序员站长
2022/09/07
1.7K0
异步调用的理解
关于这个概念看了许多解释,都是似是而非,并不能完全get到点。个人认为从进程间通信的角度理解比较好,在《操作系统》中关于的部分是这样解释的:
全栈程序员站长
2022/09/18
9090
java 异步调用接口_Java接口异步调用[通俗易懂]
java接口调用从调用方式上可以分为3类:同步调用,异步调用,回调;同步调用基本不用说了,它是一种阻塞式的调用,就是A方法中直接调用方法B,从上往下依次执行。今天来说说异步调用。
全栈程序员站长
2022/09/08
5.7K0
java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?
大家好,又见面了,我是你们的朋友全栈君。 你知道java异步调用方法都有哪些吗?下面的文章内容,就对这方面的问题做了一下整理,一起来看看java异步调用的方法吧! 1、利用Spring的异步方法去执行
全栈程序员站长
2022/09/14
4K0
Android 开发艺术探索笔记二
不管是Activity,Dialog还是Toast,它们视图都是附加在window上的,window才是view的直接管理者。
Yif
2019/12/26
1.8K0
Java代码评审歪诗!让你写出更加优秀的代码!
架构师说, 用20个字描述代码评审的内容, 自省也省人。由于是一字一含义, 不连贯, 为了增强趣味性, 每句都增加对应的歪解。只是对常见评审的描述, 不尽之处,欢迎补充!
Java后端技术
2018/08/09
5.4K0
Java代码评审歪诗!让你写出更加优秀的代码!
异步函数的两个视角
以下示例代码是用Scala写的,不过本文所讲的话题并不仅限于Scala,任何有Future/Promise支持的语言都是适用的。
ThoughtWorks
2020/04/23
6790
异步函数的两个视角
点击加载更多

相似问题

NodeJS -从异步for循环中获取数组

11

承诺失败无限循环中的UI-路由器解析

11

在循环中从异步函数获取数据

12

在循环中调用异步函数

20

在循环中调用异步任务?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文