如何创建一个产生单个值并且永远不会完成的 observable [英] How to create an observable that produces a single value and never completes
问题描述
我知道 Observable.Never()
作为创建一个永远不会完成的序列的一种方式,但是是否有一个扩展/干净的过程来创建一个产生单个值的可观察对象,然后从不完成?我要使用 Observable.Create(...)
吗?Observable.Concat(Observable.Return(onlyValue), Observable.Never
?或者是否有内置的东西或比这更多的RXy"?
I am aware of Observable.Never()
as a way to create a sequence that never completes, but is there an extension/clean process for creating an observable that produces a single value and then never completes? Do i go with Observable.Create(...)
? Observable.Concat(Observable.Return(onlyValue), Observable.Never<T>())
? Or is there something built in or more "RXy" than this?
推荐答案
对于您的具体问题,一个简单的选择是使用 ‛Never‛ 和 ‛StartWith‛:
For your specific question, a simple choice is to use ‛Never‛ and ‛StartWith‛:
Observable.Never<int>().StartWith(5)
但是对于我有一个可观察到的序列会产生一些结果并最终完成并且我想对其进行更改以使其不完整"的更一般情况(您的问题是一个特例),您的 Concat 想法是这样做的方法
But for the more general case of "I have an observable sequence that will produce some results and eventually complete and I want to change it so it does not complete" (of which your question is a special case), your Concat idea is the way to do it
source.Concat(Observable.Never<int>());
或
Observable.Concat(source, Observable.Never<int>());
这篇关于如何创建一个产生单个值并且永远不会完成的 observable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!