【发布时间】:2021-01-24 21:40:51
【问题描述】:
C# 8 现在有IAsyncEnumerable。有与此等效的 Kotlin 吗?例如,在 C# 中,您现在可以await foreach(...)(使用IAsyncEnumerable):
async Task Main()
{
await foreach(var dt in new Seconds().Take(10))
{
Console.WriteLine(dt);
}
}
public class Seconds : IAsyncEnumerable<DateTime>
{
public class FooEnumerator : IAsyncEnumerator<DateTime>
{
public DateTime Current { get; set; }
public async ValueTask DisposeAsync() {}
public async ValueTask<bool> MoveNextAsync()
{
await Task.Delay(1000);
Current = DateTime.Now;
return true;
}
}
public IAsyncEnumerator<DateTime> GetAsyncEnumerator(CancellationToken cancellationToken = default)
=> new FooEnumerator();
}
【问题讨论】:
标签: kotlin async-await kotlin-coroutines