我想知道为什么Observable
当我不等待它的来源时我没有产生任何元素IAsyncEnumerable
。我正在使用 a Select
over the Observable
,并且没有任何结果,我的代码没有执行。
public async IAsyncEnumerable<int> GetAsyncEnumerable()
{
int i=0;
while(true)
{
await Task.Delay(1000);
yield return i++;
}
}
public async Task Run()
{
IAsyncEnumerable<int> enumerable=GetAsyncEnumerable().ToObservable();
await foreach(var elem in enumerable)
{
Console.WriteLine(elem);
}
}
在上面的例子中,代码工作并被调用,而下面没有任何输出。
public async Task RunObs()
{
IAsyncEnumerable<int> enumerable=GetAsyncEnumerable().ToObservable();
IObservable<int> inputObs = enumerable.ToObservable();
var outputObs = inputObs
.Select(elem=>
{
Console.WriteLine(elem); //does not execute
return elem;
});
}
我是否需要在某处存储对这个 observable 的引用,或者应该如何做到这一点?