RXJS:订阅在可观察的扫描运算符上添加新循环

时间:2019-06-20 12:43:40

标签: rxjs

我最近开始使用RxJS,但无法找到有关以下方面的信息:

扫描可观察对象时,每个订阅都会为扫描操作添加新的迭代。

它看起来像是错误或错误的代码实现。

下面的链接演示了这一点:

https://codesandbox.io/s/fancy-bird-0m81p

我有3个订阅,这意味着扫描功能上有3个额外的循环。

注释掉订阅并在控制台窗口中查看更改。

这是预期的,是错误还是错误的实现?

如果可以的话,请链接到说明。还可以阻止这种情况发生吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

只需在@JB Nizet的评论中添加更多内容 共享的工作方式与以下代码示例

相似
getShareObservable(){
 const share = new Subject()
 Store$.pipe(
  scan((acc, curr) => {
    console.log("Scanning...");
    return Object.assign({}, acc, curr);
  }, initialState).subscribe(share)
  return share
}

const shareObservable=getShareObservable()

然后您的scan将不会运行多次