简体   繁体   English

如何基于现有C#代码段在F#中创建可观察函数?

[英]How do I create an observable function in F#, based on an existing C# snippet?

I am trying to convert the following code to F#: 我正在尝试将以下代码转换为F#:

static void Main(string[] args)
{
    var y = Observable.Create<int>(x =>
        {
            x.OnNext(5);
            return (() => { });
        });

    y.Subscribe(x => Console.WriteLine(x));
}

tried the following : 尝试了以下方法:

let ob = Observable.Create<int>(fun x -> 
                                    x.OnNext(5)
                                    fun unit -> unit)  

but no success. 但没有成功。 What should I be doing? 我该怎么办?

let observable = Observable.Create(fun (x: IObserver<_>) ->
  x.OnNext(5)
  Action(ignore))

observable.Subscribe(printfn "%d") |> ignore

If your Observable cannot be cancelled (usually when it is synchronous) , it's more efficient to use the singleton Disposable.Empty 如果您的Observable无法取消(通常是在同步时),则使用单例Disposable.Empty效率更高。

Observable.Create(fun (o : IObserver<_>) -> 
    o.OnNext(5)
    Disposable.Empty
)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM