使用combineLatest时如何捕获链式rxjs可观察量的错误?

2023-12-13

继从这个帖子,我有以下

Observable.combineLatest(
        this.translate.get("key1"),
        this.translate.get(""),
        this.translate.get("key3"),
        this.translate.get("key4")
    )
    .subscribe(([result1, result2, result3, result4]) => {
        console.log(result1);
        console.log(result2);
        console.log(result3);
        console.log(result4);
    },
      error => {
        console.log(`${error}`);            
   });  

在第 2 行我收到一个错误,但这似乎并没有进入error上面的处理程序。不幸的是,我发现的示例和 doco 似乎不包括如何捕获错误(假设上面的方法可行)。

有人对如何做到这一点有任何想法吗?


在我看来可能是这样this.translate.get("")正在验证一个参数并将其抛出可观察值的“外部”(即在它创建其可观察值之前)。

您可以使用如下代码验证错误处理:

import "rxjs/add/observable/throw";

Observable.combineLatest(
  this.translate.get("key1"),
  Observable.throw(new Error("Boom!")),
  this.translate.get("key3"),
  this.translate.get("key4")
)
.subscribe(
  ([result1, result2, result3, result4]) => {
    console.log(result1);
    console.log(result2);
    console.log(result3);
    console.log(result4);
  },
  error => {
    console.log(`${error}`);
  }
);

你可以验证一下this.translate.get("")正在将错误抛出到可观察的“外部”,如下所示:

import "rxjs/add/observable/defer";

Observable.combineLatest(
  this.translate.get("key1"),
  Observable.defer(() => this.translate.get("")),
  this.translate.get("key3"),
  this.translate.get("key4")
)
.subscribe(
  ([result1, result2, result3, result4]) => {
    console.log(result1);
    console.log(result2);
    console.log(result3);
    console.log(result4);
  },
  error => {
    console.log(`${error}`);
  }
);

如果这就是它正在做的事情,我想这是合理的行为,因为空键不太可能有效。更多“内部”错误可能会通过可观察到的报告,并且应该由您传递给的错误回调来处理subscribe.

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

使用combineLatest时如何捕获链式rxjs可观察量的错误? 的相关文章

随机推荐

  • 检测iframe内容是否加载成功

    我有一个包含 iframe 的小部件 用户可以配置此 iframe 的 url 但如果无法加载该 url 它不存在或用户无法访问互联网 则 iframe 应该故障转移到默认的离线页面 问题是 如何检测iframe是否可以加载 我尝试订阅 l
  • ValueError:发现样本数量不一致的数组 [6 1786]

    这是我的代码 from sklearn svm import SVC from sklearn grid search import GridSearchCV from sklearn cross validation import KFo
  • 具有许多请求的 Blazor Server 应用程序使网站不稳定

    我创建了 Blazor 服务器 Web 应用程序 并将其部署在 Azure 应用服务上 并在Network选项卡我看到很多请求https mywebsites0123 azurewebsites net blazor id 3OO T6L4
  • 编码 ui 测试完成后如何保持浏览器打开?

    我正在对 Web 应用程序使用 Visual Studio 2012 编码 UI 测试 我有一个登录应用程序的测试 该测试启动浏览器 找到登录对话框 输入凭据 然后单击 确定 我有一个断言 可以在登录后检查正确的网址 该测试似乎运行正常 我
  • 如何避免合并分布式表上的高基数子选择聚合

    在 Clickhouse 中 我有一个大表 A 其中包含以下列 date user id operator active 在表 A 中 事件已经根据日期 user id 和操作员进行了预先聚合 而 活动 列表示用户在给定日期存在某种类型的活
  • 如何在iPhone应用程序中通过代码获取用户的当前位置?

    我想从我的 iPhone 应用程序获取用户的当前位置 我想在我的应用程序中显示用户当前的位置 例如国家 地区名称 纬度 经度信息 我也想在谷歌地图上显示位置 我也尝试过谷歌搜索 但无法得到确切的答案 我已经得到了要使用的信息CLLocati
  • 将 B 样条曲线拟合到控制路径

    我意识到在 R 中使用 B 样条存在很多问题和答案 但我还没有找到这个 看似简单 问题的答案 给定一组描述控制路径的点 如何拟合 B 样条曲线并沿着曲线提取给定数量的点 例如 100 以进行绘图 问题是路径在 x 和 y 上都不是单调的 控
  • 如何在 Java 中替换字符串中的点 (.)

    我有一个名为persons name 我想更换DOT with 即我的输出将是persons name 我尝试了这段代码 String a str xpath replaceAll a 我收到 StringIndexOutOfBoundsE
  • 如何向网站添加一些非标准字体?

    有没有办法在网站上添加一些自定义字体而不使用图像 Flash或者其他一些图形 例如 我正在开发一个婚礼网站 我发现了很多适合该主题的漂亮字体 但我找不到在服务器上添加该字体的正确方法 我如何将该字体与 CSS 一起包含到 HTML 中 没有
  • R:检查一组变量是否形成唯一索引

    我有一个大数据框 我想检查一组 因子 变量的值是否唯一标识数据的每一行 我当前的策略是按我认为是索引变量的变量进行聚合 dfAgg aggregate dfTemp var1 by list dfTemp var1 dfTemp var2
  • 在循环内调用控制器(crawler4j-3.5)

    嗨 我正在打电话controller inside for loop 因为我有超过 100 个 url 所以我将所有内容都放在列表中 我将迭代并crawl在页面上 我也为 setCustomData 设置了该 url 因为它不应该离开域 f
  • 查看不同dtype下的对象数组

    我想查看一个具有封装整行的 dtype 的对象数组 data np array a 1 a z b a dtype object dt np dtype x object y object data view dt 我收到错误 TypeEr
  • Xamarin 错误:未安装框架:.NETPortable,版本=v4.5

    我成功安装了 Xamarin 并创建了一个新项目 根本没有代码 我在引用下收到以下错误 并收到 Xamarin Forms 丢失的错误 我尝试搜索 但在修复建议有效的地方没有看到同样的错误 谢谢 Error Framework not in
  • 在 WinForm 项目选项卡中运行 exe

    我有兴趣使用我正在编写的 winform 应用程序执行以下操作 以在 Visual Studios 2010 IDE 中的 c 选项卡中打开 exe 我目前可以使用以下代码通过在所需选项卡中单击按钮来打开程序 string str INSE
  • SQL Server 动态查询

    我有 15 个存储过程 它们从公用表返回数据 然后将该表与特定表连接起来以检索库存 Example Common tblCommon Specific tblSpecific 有没有办法可以将名称 tblSpecific 作为变量传递到单个
  • 您尚未接受许可协议。[Android SDK Platform 23]

    我正在使用 React Native 当我运行react native run android运行命令我收到此错误 您尚未接受以下SDK的许可协议 组件 Android SDK 平台 23 Android SDK 构建工具 23 0 1 我
  • C++ 中的 strtok() 类似物

    我只是找不到一种算法来通过大量分隔符将字符串拆分为单词 我知道如何用空格分割字符串istringtream and by 单个分隔符 with getline 我怎样才能将它们全部连接起来 例如 input This is a string
  • 我试图在 svg 元素中创建一个 rect 元素,但它不起作用

    为什么我运行该函数时没有出现红色矩形createRect 任何帮助将非常感激 function createRect var rec document createElement rect rec style width 100px rec
  • 从 Cucumber Stepdefs 中的 Testng.xml 文件读取参数值

    我能够在与 Cucumber 集成时运行 testng 脚本 我已按照中定义的确切步骤进行操作http automatictester co uk 2015 06 11 basic cucumberjvm selenium webdrive
  • 使用combineLatest时如何捕获链式rxjs可观察量的错误?

    继从这个帖子 我有以下 Observable combineLatest this translate get key1 this translate get this translate get key3 this translate g