IObservable.Subscribe ONext 操作不会在 blazor webassembly 中阻塞

问题描述 投票:0回答:0

我正在使用https://github.com/dotnet/reactive 我使用 CombineLatest 将 observableA(通过计时器发出项目)与 observableB(手动插入)结合起来。 在 OnNext 方法中,有时我会向 observableB 插入新值 在这种情况下,OnNext 的新迭代会在当前 OnNext 返回之前立即开始。

 _subscription = _observable.ClientData
        .CombineLatest(_deviceTypeFilterViewModel.Filters)
        .Subscribe(OnNext, OnError);

private void OnNext((IClientDataSlice slice, Filtter filter) sliceWithFilter)
{
   Logger.Log(Slice.Number + " start");
   //... pseudo code:
   _deviceTypeFilterViewModel.Filters.Add(someValue)
   Logger.Log(Slice.Number + " end");
}

将被执行为:

1 start
2 start
....

代替

1 start 
1 finish
2 start
2 finish

当我在托管的 Blazor 服务器中执行相同操作时,它按预期工作:直到先前的方法返回,新的 OnNext 才会启动。这是设计使然吗?

system.reactive blazor-webassembly rx.net
© www.soinside.com 2019 - 2024. All rights reserved.