我正在尝试使用StartWith
方法将初始值注入RX流:
public async Task<IObservable<Price>) Stream(Instrument instrumentDetails)
{
var initialPrice = await _svc.GetSomeInitialPrice();
var stream = _priceObserver.Stream
.Where(o => o.Symbol == instrumentDetails.Symbol)
.Select(o => GetPrice(o, instrumentDetails));
stream.StartWith(initialPrice);
return stream;
}
但是,由于要获取初始值的调用,因此该方法是异步的。并且无论如何都需要在整个调用堆栈中保持异步]
我发现该值从未添加到开头。我只剩下剩下的了
如果我等待StartWith
方法,它将永远不会返回
任何想法我在做什么错
IObservable
上的方法不会修改基础对象,它们会返回一个新对象。 stream.StartWith(initialPrice)
返回一个新的可观察变量,您可以忽略它,它对stream
不起任何作用。