【问题标题】:How to complete combineLatest?如何完成combineLatest?
【发布时间】:2023-03-03 05:41:22
【问题描述】:

我使用combineLatest 从每个 observables 中获取最新值:

combineLatest$ = combineLatest(_block$, _field$);
    combineLatest$.subscribe(() => {
      console.log("Completed...");
    });

然后我有另一个 observable 可以工作,直到 forkJoin$ 发送数据:

of(true).pipe(delay(1000), takeUntil(combineLatest$)).subscribe(() => console.log());

如何填写combineLatest$?我应该取消订阅of() 否则它会被自动销毁吗?

【问题讨论】:

  • 所以,我已经绑定等待 1 秒,然后如果服务器没有响应所有请求,我应该执行操作

标签: rxjs rxjs6 rxjs-observables


【解决方案1】:

没有。 takeUntil 将为您运行拆解逻辑。似乎您将forkJoin 语义与combileLatest 混淆了,它们完全不同。在您的特定情况下,forkJoin$ 没有true forkJoin semantics;我猜你必须同时完成_block$_field$ 才能完成combineLatest

【讨论】:

  • 抱歉,这是我使用的变量类型combineLatest。固定
  • 是的,如何提前完成combineLatest$
  • 当页面上的所有 observables 都完成时我需要等待,我应该使用 forkJoin 吗?
  • 那么,如何完成_block$ then 和_field$
  • @Jony 您可以手动完成它们(通过调用complete())或使用一些可完成的运算符。您必须为我们提供更多代码来确定哪个选项更合适。无论如何,完成确实取决于 _block$_field$ 实例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-25
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
相关资源
最近更新 更多