如何创建一个产生单个值并且永远不会完成的 observable [英] How to create an observable that produces a single value and never completes

查看:53
本文介绍了如何创建一个产生单个值并且永远不会完成的 observable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆