【问题标题】:How to create a stream that emit a value only when another stream emit a value?如何创建仅在另一个流发出值时才发出值的流?
【发布时间】:2016-06-20 23:25:08
【问题描述】:

我正在学习 rxjs。 假设我有一个值数组:

[12, 23, 34, 56, 78, 99]

我想创建一个上述值的流A$,但它不会立即一个接一个地发出值,而是应该等待只有在另一个流B$ 时才发出值发出一个值。

【问题讨论】:

  • 从哪里获取数据?
  • 只是手动定义的普通数组,而不是来自 ajax 调用或其他类型的异步操作。

标签: javascript rxjs


【解决方案1】:

你有几个选择:

  • 使用sample,如您的问题的cmets 中所述。这意味着您将无法访问B$ 发出的值。
  • 使用combineLatest/zip,如果你想重用你的流B$携带的值,以及一些额外的语义。例如,A$.combineLatest(B$, function (a,b){...})
  • withLatestFrom,但像这样:B$.withLatestFrom(A$, function (b,a){...}

所有这些选项的语义略有不同,因此请明智地选择它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    • 2021-08-06
    • 1970-01-01
    相关资源
    最近更新 更多