【问题标题】:Create an observable that emits subsets of data from another observable创建一个从另一个可观察对象发出数据子集的可观察对象
【发布时间】:2018-12-18 19:38:11
【问题描述】:

我有一个可观察的values$ 发射对象。

const value = { a: { foo: bar }};
const values$ = Observable.from([value, value, value]);

我正在尝试从values$ 创建另一个可观察的对象,每次values$ 触发时都会发出a 的值。我一直在搜索文档以寻找允许我执行此操作的操作员,但我没有找到任何东西。

现在每次订阅 observable 时我都会添加额外的逻辑,但感觉不对。

const innerValueSubject = new Subject();
const innerValue$ = innerValueSubject.asObservable();

values$.do(value => innerValueSubject.next(value))
    .subscribe(...);

innerValue$.map(value => value.a)
    .subscribe(...);

有没有一种方法可以从values$ 派生出innerValue$,然后只需映射以获得每次values$ 发出时需要的结果?

【问题讨论】:

  • 所以你想要values$.map(value => value.a)
  • 嗯,最终是的,但这个问题更多地集中在我如何从原始可观察对象中导出可观察对象innerValue$,而无需创建单独的主题并手动调用next
  • 更新了最后一个代码 sn-p 来表示。
  • 好吧,innerValue$ = values$.map(value => value.a);
  • 这很有意义。现在很明显了。

标签: rxjs


【解决方案1】:

从现有的 observable 派生 observable,您只需要引用每个运算符返回的现有 observable。

就我而言

const innerValue$ = values$.map(value => value.a);

感谢@JBNizet 对问题的评论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2020-03-05
    • 1970-01-01
    • 2022-08-19
    相关资源
    最近更新 更多