RxJS 排队相关任务

2023-12-09

如果我有一个像这样的数组数组

{
    parent: [
        {
            name: 'stu',
            children: [
                {name: 'bob'},
                {name: 'sarah'}    
            ]
        },
        { 
          ...
        }
    ]
}

我想循环遍历每个父级并依次循环遍历它们的子级,这样我就不会启动下一个父级,直到所有子级都已处理完毕(一些漫长的异步过程),我该如何使用 RxJS 来做到这一点?

我已经尝试过这样做:

var doChildren = function (parent) {
    console.log('process parent', parent.name);
    rx.Observable.fromArray(parent.children)
    .subscribe(function (child) {
        console.log('process child', child.name);
        // do some Asynchronous stuff in here
    });
};

rx.Observable.fromArray(parents)
.subscribe(doChildren);

但我让所有家长退出,然后是所有孩子。


concatMap在这里效果更好。因为如果迭代子项是异步的,子项的顺序就会混乱。concatMap可以确保一次完成一位父母。

Rx.Observable.from(parents)
  .concatMap(function (p) {
    return Rx.Observable.from(p.children)
  })
  .subscribe();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RxJS 排队相关任务 的相关文章

随机推荐

  • C 函数中的冒号代表什么?

    冒号的这种用法叫什么 以下代码摘自书中学习核心音频 int main int argc const char argv cleanup AudioQueueDispose queue true AudioFileClose player p
  • 临时局部变量的命名约定

    在本地函数中命名临时变量的标准方法是什么 让我向您说明我正在做的事情 我得到一个指向结构的指针 因此我想在本地存储其成员之一以避免取消引用 然后将任何修改分配回指针 更具体地说 struct Foo double m d void func
  • 使用python从MAC获取IP地址

    我的本地网络中有一个设备并且知道它的 MAC 地址 它通过 DHCP 自动获取 IP 地址 我想获得这个IP 我不想使用 nmap 但 scapy 就可以了 因为我是从 kivy 应用程序导入的 I found from scapy all
  • Codeigniter 3 中禁止 POST url 403

    您好 专家们 您能给我一个建议吗 为什么我在当前在本地主机上运行的代码点火器上收到此 403 禁止消息 403 禁止 过程是这样的 我使用 ajax 来轻松 顺利地访问和检索从模型 控制器到视图的数据 下图是我在视图到控制器中的代码 div
  • Python:如何在其他函数中使用一个函数中的命名变量

    我是一名新手程序员 试图使用 Python 3 3 2 编写一个程序 该程序具有main 调用的函数function1 然后循环function2 and function3 我的代码通常如下所示 def function1 print h
  • 阻止禁用用户 firebase 规则

    我不确定这是否有效 但我想知道如果用户已被禁用 是否可以在规则中阻止存储 firestore 读 写 这可能吗 上下文 auth 禁用 或者我是否只需要等待令牌过期 用户就被拒绝访问 禁用用户意味着他们无法再登录 也无法刷新其 ID 令牌
  • python 字符串搜索替换

    SSViewer set theme bullsorbit 这是我的绳子 我想在字符串中搜索 SSViewer set theme bullsorbit 并替换 bullsorbit 用另一根绳子 bullsorbit 字符串是动态变化的
  • IE8 内部 HTML 错误

    这个innerHTML代码在IE8中不能可靠地工作 但正在 IE6 IE7 FF Opera Chrome Safari 中工作 通过不可靠地工作 我的意思是我已将此代码放置在各种元素上的 onmouseover 处理程序中 有时当鼠标悬停
  • 表单嵌套在表中时的 jQuery 表单提交

    是否有原因导致表单无法在表内使用 jQuery 提交 或者我只是做错了什么 我已经在表格外测试了表单提交 然后当我将其包装在表格内时 它就停止工作 即使我添加了额外的parent 来弥补上方移动的形式 td 代码中的元素 有人可以帮我解决这
  • AJAX 响应在 C++ 中无效,但在 Apache 中无效

    我想制作一个用 C 编写的服务器来支持我的游戏 我学习了套接字的基础知识 并编写了一个运行良好的基本聊天程序 现在我想创建一个像 Apache 一样的 HTTP 服务器 但仅限于 AJAX 请求响应部分 我想一开始我复制了一个 Apache
  • Rails 3 + PDFKit 问题:权限被拒绝 (Errno::EACCES)

    我想用PDFKit在我的 Rails 3 应用程序中在 Windows 上 我安装了wkhtmltopdf和pdfkit gem 这是我用来创建 PDF 的代码 class JobsController lt ApplicationCont
  • 如何创建 POI Word 格式的电子邮件链接

    如何在电子邮件中创建外部链接或电子邮件链接XWPF文档 有一个描述Excel HSSF XSSF 但我还没有找到与 Word HWPF XWPF 类似的内容 public void example throws Exception XWPF
  • Android Studio:测试:使用 java 8 或更高版本编译的库依赖项

    请帮忙 我在为 android studio 设置测试时经历了一段非常糟糕的时光 我已经从 cucumber github 下载了计算器示例来练习 cumcumber 代码测试 https github com cucumber cucum
  • Pepper 机器人:上传 python 模块

    我正在编程一个辣椒机器人 with 编舞我正在使用一个真正的机器人 我遇到的问题是如何将 python 模块安装到机器人上 因为我需要使用requests包进行 API 调用 我一直在互联网上浏览 但没有找到任何解决方案 出于安全原因 根访
  • 如何从直线访问Metastore?

    我需要做一些 SQL 查询 如here 直接来自 Metasore PS 命令 SHOW DESCRIBE 是not足够的 如何启用它作为数据库的访问 或者 Metastore 的数据库名称是什么 现在 2019年 有可能吗 NOTES W
  • 覆盖/修改 Rails 类 (ActiveResource)

    我现在一直在努力解决 ActiveResource 的问题 当主机名解析 ActiveResource 请求 但另一端没有服务器返回信息时 ActiveResource 的超时值不起作用 请求只是挂起 在查看 ActiveResource
  • Windows 命令提示符下 Python 3.6 中的模块未找到错误

    我创建了一个如下项目 project package1 init py module1 py package2 init py module2 py 我想将 module1 导入到 module2 中 from package1 impor
  • 如何在 Ansible 中交替替换多个列表的元素?

    我有多个列表作为输入 所有列表都具有相同的长度 但输入可以有超过 3 个列表 我想创建一个列表 它是所有交替其元素的输入列表的总和 例如 给定以下输入 data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 我期待
  • ByteBuffer.asCharArray().array() 上出现 UnsupportedOperationException

    有人能好心解释一下为什么在下一行我有 UnsupportedOperationException 吗 System out println ByteBuffer wrap new byte t e s t n asCharBuffer ar
  • RxJS 排队相关任务

    如果我有一个像这样的数组数组 parent name stu children name bob name sarah 我想循环遍历每个父级并依次循环遍历它们的子级 这样我就不会启动下一个父级 直到所有子级都已处理完毕 一些漫长的异步过程