RxJS forkJoin 未完成

2024-04-02

当我订阅 getAllSubModules 时,forkJoin 会毫无错误地执行所有这些可观察值,但不会完成。我知道 forkJoin 仅在其所有可观察值完成后才完成,但作为证据,我在控制台中看到“-----”3 次,这确认一切都成功,因此所有可观察值均已完成。

 getSubmodules(id): Observable<any> {
    return this.authService.getToken()
      .flatMap((token) => this.http.get(`${this.URL}/ROS/applications/modules/${id}/subModules?token=${token}`))
      .map((res: any) => res.data.map((subModule) => this.mapSubModules(subModule)));
  }
  getAllSubmodules(): Observable<any> {
    const tasks = [];
    this.modules.forEach((module: AppModule) => {
      const obs = this.getSubmodules(module.id).map((subModules) => {
        this.allSubModules[module.id] = subModules;
        console.log('--------------------');
      });
      tasks.push(obs);
    });
    return Observable.forkJoin(...tasks).retry(2);
  }
  mapSubModules(moduleData) {
    if (moduleData.id) {
      const subModule = <SubModule> {
        id: moduleData.id,
        parentId: moduleData.parentId,
        typeId: moduleData.typeId,
        name: moduleData.name.az,
        active: true
      };
      return subModule;
    }
  }

使用时不会执行此代码forkJoin:

 this.universityService.getAllSubmodules().subscribe(() => {             
        // --- Below is not executed!--
        console.log('subModules in Report Co');
        console.log(this.universityService.allSubModules);
        this.checkUrl();
        this.showChild = true;
      }, (er) => console.log(er));

但是当我使用结合最新而不是 forkJoin 它按预期工作。 那么问题出在哪里呢?希望有人指教。


你的期望是不正确的。拥有console.log('--------------------')发出 3 次仅意味着您已收到 3onNext事件。forkJoin等待所有 observable 完成。

尝试一下如果您使用以下命令查看各个流会发生什么.do(next=>{},err=>{},complete => console.log('completed'))或明确定义您的流何时应完成使用.take(1) and/or .timeout(1000).

Does authService..getToken()发出一个值后完成?

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

RxJS forkJoin 未完成 的相关文章

  • Angular 12.1 使用 typescript 添加 html 元素

    我正在通过 youtube 学习 Angular 但我正在尝试做一些新的事情 但我遇到了一个错误 我的代码附在下面 请帮助我 我想这样设置属性div setAttribute click popUp event 但我得到了错误 打字稿 ex
  • 具有内部表单初始值的 Angular ControlValueAccessor

    我有这个组件使用ControlValueAccessor 该组件有自己的内部表单 我找不到在哪里设置表单控件的初始值 有人能指出我正确的方向吗 import Component ChangeDetectorRef forwardRef Ng
  • 自定义 django-rest-framework-simplejwt 的 JWT 响应

    我正在设置 Django 来发送 JWT 响应而不是视图 我尝试使用 django rest framework simplejwt 这个框架中提供了一个函数TokenObtainPairView as view 返回一对 jwt 我需要使
  • 通过innerHTML输入时span不应用css样式

    我有 Angular 应用程序 作为它的一部分 我在 div 中显示查询结果 具有 JSONContainer 的 ID 我想突出显示结果中的特定查询 因此我使用了一个管道来搜索结果 并将文本中的 FIELD VALUE 替换为 span
  • Angular:DOM更新后调用方法

    我正在从 html 调用一个方法 调用休息服务 来增加 减少屏幕上的计数 现在我想调用另一个方法 即 getThreshold 来检查计数是否达到阈值 如果是 我想显示一条确认消息 我想首先更新屏幕上的计数 然后调用该函数来检查它是否达到阈
  • @Component 和 @View 的区别

    我试图找出 AngularJS 2 中 Component 和 View 之间的区别 在下面的两个例子中我可以实现完全相同的事情 没有 View的示例 import Component from angular2 core Componen
  • 是否可以在运行时动态设置组件@Input?

    说我有一个dynamic component wrapper可以实例化任何Component传递给它的类 DRE013 DCOOKE 16 05 2017 The component to instantiate Input compone
  • 为什么 Angular 2 ngOnChanges 不响应输入数组推送

    我的角度应用程序遇到了问题 我使用输入作为数组 并在单击事件发生时将值推送到数组 但是当数组推送完成时 ngOnChanges 不会触发 有没有办法触发 ngOnChange 我的代码是 ts 文件是 Component selector
  • Angular2 + Laravel 与实时和 WebSockets

    我构建了一个应用程序 并计划与 Angular 2 和 laravel 进行实时战斗 例如 你按下 攻击 按钮 你的对手就会实时看到他的生命在下降 我的应用程序构建有 前端 角2 Backend PHP Laravel 5 2 现在我正在寻
  • Angular 2 Component - 访问 DOM(或创建没有模板的组件,纯粹来自 JS)

    尝试在这里使用 Angular 2 了解它仍处于 alpha 阶段 如何从组件访问 DOM 元素 具体来说 我想使用其他库 例如d3 http d3js org 从代码生成自定义 DOM 我想我需要创建一个组件并以某种方式插入组件生命周期以
  • Angular 中的文件输入事件类型

    所以我已经使用 Angular 和 Typescript 很长时间了 我似乎无法找出输入文件的类型是什么 例如
  • 在 Angular 6 服务中获取当前路由参数的最佳方法是什么?

    我试图找出在 Angular 6 中获取当前路由参数的最佳方法是什么 目前我必须通过ActivatedRoute到服务的方法作为参数 然后在服务中使用它 export class MainComponent constructor priv
  • 如何使用 Angular 2 修改 ng-bootstrap 轮播的 CSS

    最近 我尝试修改 ng bootstrap carousel 组件中的 carousel item 类 但是 我发现我需要在元数据中添加 encapsulation ViewEncapsulation None 使用此解决方案还会更改其他轮
  • Angular 2 runOutsideAngular 仍然改变 UI

    从我的理解来看runOutsideAngular https angular io docs ts latest api core index NgZone class html runOutsideAngular anchor 如果我需要
  • 如何在 Angular @Input 中仅接受预定义值

    我的问题是 我在 a 中收到一个字符串值作为组件的参数 但我想限制可以用作参数的值 就像enum I use Input type string 但是在组件中 一切都可以引入type正如我之前所说 我需要将其限制为 3 个选项 例如Enum
  • 如何通过自定义指令动态添加组件

    我想编写一个自定义指令 它将根据 div 内的某些逻辑动态添加组件 我在其中使用了自定义指令 我尝试使用 componentFactoryResolver 和 viewContainerRef createComponent 动态添加组件
  • 如何在 Angular (v4+) 上执行 window.onclick()

    我一直在尝试关闭调用按钮 即窗口 之外的单击下拉菜单 使用 javascript 很容易 因为我可以简单地 Close the dropdown menu if the user clicks outside of it window on
  • 在哪里存储角度中的 JWT 令牌?

    我正在使用 Django 和 Angular 构建一个应用程序 目前 我正在本地存储上存储后端发出的 JWT 但是 我担心 XSS 攻击 我应该使用仅 HTTP 的 cookie 来存储令牌吗 我还考虑将令牌存储在我的身份验证服务类中的变量
  • 模板解析:找不到管道

    我收到错误 模板解析错误 找不到管道 amDateFormat 这是我的app module ts import NgModule from angular core import MomentModule from angular2 mo
  • 聆听 Angular 2 中的元素可见性

    我正在为我的网络应用程序使用 Bootstrap 和 Angular 2 v4 我想监听指令中的元素以了解可见性变化 我的元素有一个可以隐藏其子元素的父元素hidden sm up我需要在每次隐藏或显示时触发一个函数 div hidden

随机推荐

  • Haskell 生成预过滤排列

    有没有办法生成预过滤的排列 而不是这样做 filter condition permutations list 排列函数可以短路 例如 perms perms xs i j i lt xs j lt perms delete i xs 我尝
  • Phing 字符串操作

    我有一个 Phing 项目 您传入一个参数 我想对此参数执行简单的字符串操作 例如 strtolower 或 ucwords 等 我有什么想法可以解决这个问题吗 使用 PhpEvaLTask 怎么样
  • 如何在 Yii 中安装 AWS SDK

    我想在我的 Yii 项目中使用适用于 PHP 的 Amazon AWS SDK 但是我收到各种包含错误 例如include CFCredentials php failed to open stream No such file or di
  • 如何让 eclipse JSP 表达式语言验证接受 JSP 2.2 EL 构造?

    我有一个带有以下 JSP 标记的页面
  • 震动效果 - Flash CS6 ActionScript 3.0

    这个问题与 ActionScript 3 0 和 Flash CS6 有关 我试图让一个物体在一定时间内稍微摇晃几秒钟 我将其制作为 电影剪辑 并制作了以下代码 import flash events TimerEvent var Mach
  • 同一角度指令的多个实例会扰乱范围变量

    我在页面上多次使用该指令 例如 div div div div
  • Angular2 APP_INITIALIZER 嵌套 http 请求

    我一直在尝试使用APP INITIALIZER在引导过程中加载一些配置数据 类似于如何将从后端渲染的参数传递给 angular2 bootstrap 方法 https stackoverflow com questions 37611549
  • 如何在 Chrome 中使用 Selenium + Python 绑定控制文件的下载

    在哪里可以找到描述可与 Selenium 和 Chrome Web 浏览器一起使用的选项的文档 我想在网络浏览器中打开链接 以获取凭据 但不想下载相应的文件 pdf 或 tiff 或 jpeg 我在 Windows 7 笔记本电脑上使用 P
  • Excon::Errors::Forbidden in UsersController#update

    我正在尝试使用 Carrierwave 将图像上传到 Amazon S3 以便为我的用户提供上传头像的机会 当我添加图像文件并单击 更新 时 收到以下错误消息 Excon Errors Forbidden in UsersControlle
  • 如何使用 javascript 控制 Sass 变量

    我有一个正在生成 CSS 文件的 Sass 文件 我在 sass 文件中使用了许多变量作为背景颜色 字体大小 现在我想通过 JavaScript 控制所有变量 例如 在 style sass 中我们有 bg 000 font size 12
  • 命令行中转换命令出错

    我有一个 bash shell 脚本 如下所示 bin bash SIZES 512 1024 2048 for i in SIZES do SIZE SIZES i echo SIZE first resize original imag
  • 我需要 SQLBulkcopy 的进度条

    我的应用程序需要进度条 我正在通过文本文件将数据上传到 SQL Server 但这需要很多时间 而且我也使用了后台工作程序 但这不能正常工作 所以我只需要知道是否有任何方法可以将进度条与 SQL Bulk Copy 一起使用它告诉我插入了
  • Python:如何让程序等待函数或方法完成

    程序经常需要等待函数完成其工作 有时恰恰相反 主程序不需要等待 我举了一个简单的例子 有四个按钮 单击每个将调用相同的calculate 函数 唯一的区别是函数的调用方式 直接打电话 使用队列 每个线程完成后将结果放入队列中 然后您只需读取
  • 我必须使用 SVN API 或库访问/提交/更新 WPF 应用程序中的 SVN 存储库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何可用于从 net 应用程序访问 SVN 的好库 使用 C 到目前为止我发现的唯一 3 个我会尝试的
  • 如何使用 easy_install 安装 django 旧版本?

    我刚刚因为 django 1 3 破坏了我的环境 我的网站都无法运行 因此 我决定使用 virtualenv 来设置不同 python 版本以及 django 的虚拟环境 但是 似乎如果我下载软件包并使用 sudo python setup
  • 阵列部件访问

    我试图更好地理解数组 请原谅我的基本问题 因为我三周前刚刚打开我的第一本 php 书 我知道您可以使用 foreach 或 for 循环 检索键 值对 如下所示 stockprices array Google gt 800 Apple g
  • II 错误:应用程序代码隐藏=“Global.asax.cs”继承=“nadeem.MvcApplication”

    我正在尝试部署我的网络项目 但不断收到此错误 Line 1 我看了这个帖子 解析器错误 应用程序中的服务器错误 https stackoverflow com questions 11596352 line 1 application co
  • MySQL Regexp 是否支持 Unicode 匹配

    有谁知道Mysql的正则表达式是否支持unicode 我一直在做一些研究 大多数博客等似乎都表明存在问题或不受支持 我想知道是否最好使用 LIKE 进行 unicode 模式匹配 使用 regexp 进行 ASCII 增强模式匹配 我喜欢能
  • 具有非正则截距项的 Scikit-learn 岭回归

    scikit learn 岭回归是否在正则化项中包含截距系数 如果是 是否有办法在不正则化截距的情况下运行岭回归 假设我拟合岭回归 from sklearn import linear model mymodel linear model
  • RxJS forkJoin 未完成

    当我订阅 getAllSubModules 时 forkJoin 会毫无错误地执行所有这些可观察值 但不会完成 我知道 forkJoin 仅在其所有可观察值完成后才完成 但作为证据 我在控制台中看到 3 次 这确认一切都成功 因此所有可观察