1. ホーム
  2. dart

[解決済み] Dartのasyncとasync*の違いは何ですか?

2022-04-24 21:49:28

質問

私は、flutterフレームワークを使用してアプリケーションを作成しています。 この間、Dartのキーワードに遭遇しました。 asyncasync* . どなたか、この2つの違いを教えてください。

解決方法は?

として関数をマークする async または async* を使用することができます。 async / await に対して Future .

両者の違いは async* は常に Stream を通して値を出力するための構文上の工夫があります。 yield というキーワードがあります。

したがって、次のようにすればよい。

Stream<int> foo() async* {
  for (int i = 0; i < 42; i++) {
    await Future.delayed(const Duration(seconds: 1));
    yield i;
  }
}

この関数は1秒ごとに値を出し、その都度インクリメントしていく。