Blazor と C# 8.0 の IAsyncEnumerable 機能をいじっています。Razor Pages 内で IAsyncEnumerable を使用して await を使用して、データを含むマークアップを段階的に表示することは可能ですか?
サービス例:
private static readonly string[] games = new[] { "Call of Duty", "Legend of Zelda", "Super Mario 64" };
public async IAsyncEnumerable<string> GetGames()
{
foreach (var game in games)
{
await Task.Delay(1000);
yield return game;
}
}
カミソリページの例:
@await foreach(var game in GameService.GetGames())
{
<p>@game</p>
}
これにより、エラー CS4033 が発生します: 'await' 演算子は、非同期メソッド内でのみ使用できます。このメソッドを「async」修飾子でマークし、戻り値の型を「Task」に変更することを検討してください。
これが可能であれば、何かアイデアはありますか?