LoginSignup
0
0

Flutter 〜asyncとawait〜

Posted at

async

関数を修飾するために使用され、その関数が非同期処理を含むことを意味する。
asyncを使って定義された関数は、Futureオブジェクトを返す。

Future

Futureは非同期操作の結果を表すオブジェクトで、その操作が完了する未来のある時点で値を提供する。

await

awaitキーワードはasync関数内で使用され、Futureが解決されるまで処理の実行を一時停止する。awaitの後ろにはFutureを返す式を置く。
Futureの処理が完了するのを待ってから次の行のコードが実行される。

asyncとawaitによって非同期処理のコードが同期処理のように直感的に書くことが可能。

サンプルコード(Dart)

import 'dart:async';

// データを非同期的に取得する関数
Future<String> fetchData() async {
  // 2秒間の遅延をシミュレート
  await Future.delayed(Duration(seconds: 2));
  return '取得したデータ';
}

void displayData() async {
  print('データ取得中...');
  // fetchDataがデータを取得し終わるまで待機
  String data = await fetchData();
  // データが取得できたらそれを表示
  print('データ受信完了: $data');
}

void main() {
  displayData();
  print('リクエスト送信完了, 待機中。。。');
}

結果は

データ取得中...
リクエスト送信完了, 待機中。。。
**ここで2秒間待機**
データ受信完了: 取得したデータ
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0