RxJS新手问题即将来临! 所以我有这个基本缓冲区,它将source1和source2中的所有内容追加到一个数组中。在某些条件下,缓冲区被清除。
Dim intIndex As Integer = ListView1.FindItemWithText(TextBox1.Text, False, 0, False).Index
我还希望拥有缓冲区的“使用者”,它可以从缓冲区中移动项目并使用它们执行操作。我如何实现它并确保消费者更新缓冲区可观察的?
编辑:我想将数据提供给SourceBuffer,但只允许在数据未更新时向其附加数据。这让我觉得背压情况。所以我确实试图创建一个controlled observable,但无法弄清楚如何使用我自己的缓冲来创建自己的版本。
答案 0 :(得分:2)
所以我有这个基本缓冲区,它将source1和source2中的所有内容追加到一个数组中。在某些条件下,缓冲区被清除。
您需要做的是:
var sourceStream = Rx.Observable.merge(soruce1, source2);
var boundary = sourceStream.lift(someOperator) // for example sourceStream.skip(3);
// someOperator is where you perform the "magic"
var subscribeToThisStream = sourceStream.buffer( boundary );
// emits all items collected in the buffer between two boundary emitions
我也希望有一个"消费者"缓冲区,它从缓冲区中移动项目并使用它们执行操作。我如何实现它并确保消费者更新缓冲区可观察的?
如果您希望通过订阅者进行此操作,如果您想以Rx方式执行,甚至在某些情况下甚至可能无法做到,那么这绝对不可取。