【问题标题】:How can i refactor this function in rxjs?我如何在 rxjs 中重构这个函数?
【发布时间】:2022-01-01 11:17:16
【问题描述】:

我有 3 个 observable,第一个在第二个 observable 中发出一个包含必要 id 的对象,而这个发出最后一个 observable 中所需的值。我什至不知道是否有 rxjs 运算符可以更轻松地解决这个问题。谢谢。

【问题讨论】:

  • 您要的运算符是switchMap。 StackOverflow上有很多关于如何使用它的例子:)
  • SwitchMap应该怎么做?嵌套订阅并不是一个好主意..

标签: angular rxjs observable observer-pattern


【解决方案1】:

你可以试试这样的:

我更改了你所有的名字,因为你发布了一张图片,而不是你的代码。我不会把它全部复制出来:P

getRad(): void {

  this.getCurDep().pipe(
    switchMap(dep => this.getCurSer(dep.id).pipe(
      map(serie => ({dep, serie}))
    )),
    switchMap(({dep, serie}) => this.getCurrSubser(dep.id, serie.id).pipe(
      map(subserie => ({dep, serie, subserie}))
    ))
  ).subscribe(console.log);

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2017-03-26
    • 2021-10-18
    • 1970-01-01
    • 2015-11-13
    • 2018-04-01
    相关资源
    最近更新 更多