我正在试图找出一种rxjs方法来执行以下操作:
你有两个observable,一个onAddObs和onRemoveObs。 让我们说onAddObs.next()会激发几次,添加“A”,“B”,“C”。 我想得到[“A”,“B”,“C”]。
.toArray要求完成观察......但还有更多可能来。
这是第一部分。第二部分可能很明显...... 我想onRemoveObs然后从最终结果数组中删除。
我没有一个plunkr因为我无法接近这样做... 提前谢谢!
更新
根据user3743222的建议,我检查了.scan,它完成了这项工作! 如果其他人有这个问题,我已经包含了一个angular2服务,它显示了一个很好的方法。诀窍是使用.scan而不是添加/删除的内容流,添加/删除功能流,因此您可以从扫描中调用它们并传递状态。
Enter a 128-bit key to be used for encryption: aaaaaaaaaaaaaaaa
128-bit encryption key.......................[aaaaaaaaaaaaaaaa] length [16]
Text to encrypt..............................[adymlincoln
Text to encrypt..............................[adymlincoln] length [11]
Encrypted text...............................[\_i8`???R????] length [16]
Encoded text.................................[\_i8`???R????] length [16]
Encrypted text...............................[\_i8`???R????] length [16]
Text to Decrypt..............................[\_i8`???R????] length [16]
Decrypted text...............................[adymlincoln] length [11]
答案 0 :(得分:3)
您可以在此处参考SO问题:How to manage state without using Subject or imperative manipulation in a simple RxJS example?。它处理与您相同的问题,即对对象执行操作的两个流。
其中一种技术是使用scan
运算符和对scan
中保存的状态进行操作的操作流,但无论如何都要查看链接,它是非常形成的。这应该允许你编写一些代码。如果该代码不能按照您想要的方式运行,您可以使用示例代码再次回答问题。