javascript - 如何创建一个仅在另一个流发出值时才发出值的流?

标签 javascript rxjs

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

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

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

最佳答案

你有几个选择:

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

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

关于javascript - 如何创建一个仅在另一个流发出值时才发出值的流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37933327/

相关文章:

reactive-programming - RxJS合并最新的: how to get emit after just one value changes?

javascript - 将 .js 文件导入为文本并在 WebView injectedJavaScript in react-native expo 中使用它

javascript - 如何在 React 中对类组件使用 connect() 和 withStyles() ?

javascript - NodeJS 中使用 bluebird Promise 的链函数

angular - 从 HTTP Observable 响应获取单个属性

javascript - rxjs/scheduler/VirtualTimeScheduler.js 404 未找到

javascript - jQuery 显示/隐藏返回未定义,中断插件

javascript - 从Excel中检索数据并显示在页面中

javascript - 在组件初始化之前加载数据 - angular 2

reactive-programming - 捕获可观察量之间的循环依赖