mirror of
https://github.com/Cysharp/R3.git
synced 2026-10-29 15:26:45 +08:00
42 lines
1.0 KiB
C#
42 lines
1.0 KiB
C#
namespace R3.Tests.FactoryTests;
|
|
|
|
public class DeferTest
|
|
{
|
|
[Fact]
|
|
public void Test()
|
|
{
|
|
var called = false;
|
|
var def = Observable.Defer(() =>
|
|
{
|
|
called = true;
|
|
return Observable.Range(1, 10);
|
|
});
|
|
|
|
called.ShouldBeFalse();
|
|
|
|
var list = def.ToLiveList();
|
|
|
|
called.ShouldBeTrue();
|
|
|
|
list.AssertEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
|
|
}
|
|
|
|
[Fact]
|
|
public void SubscribeInDefer()
|
|
{
|
|
Observable.ReturnUnit()
|
|
.SelectMany(selector: _ => Observable
|
|
.Defer(observableFactory: () => Observable.ReturnUnit().SubscribeOnThreadPool())
|
|
.SubscribeOnThreadPool()
|
|
)
|
|
.Subscribe();
|
|
|
|
Observable.Defer(observableFactory: () => Observable.ReturnUnit().SubscribeOnThreadPool()).Subscribe();
|
|
Observable.Defer(observableFactory: () => Observable.ReturnUnit().Delay(TimeSpan.FromSeconds(1))).Subscribe();
|
|
|
|
Thread.Sleep(TimeSpan.FromSeconds(1.5));
|
|
}
|
|
}
|
|
|
|
|