0Pricing
Dart Academy · レッスン

Futureの作成とawait

Futureの値を生成して利用する

「Futureの作成とawait」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。

値を届ける約束

Futureは、まだ準備できていないものの後で届く値を表します。注文が完了したら引き換えられる受取証のようなものです。

型付きのFuture

Futureには、将来届ける値の型が必ず指定されます。Future<int>は、非同期処理が完了するとintを返すことを表します。

Future<int> fetchScore() async {
  return 42;
}

関数をasyncにする

asyncキーワードを追加すると、関数は自動的にFutureを返します。戻り値は、Futureが完了したときの値になります。

Future<String> greet() async {
  return "hi";
}

結果を待つ

async関数内では、awaitがFutureの完了まで一時停止し、その後、ラップされていない通常の値を受け取ります。

final score = await fetchScore();
print(score); // 42

awaitはブロックしない

ある関数が待機している間も、イベントループは別の処理を実行し続けます。awaitが一時停止させるのはその関数だけで、プログラム全体ではありません。

遅延をシミュレートする

Future.delayedを使うと、指定した時間が経過してから値を生成できます。遅いネットワーク通信の再現に最適です。

await Future.delayed(Duration(seconds: 1));
print("one second later");

即時完了するFuture

Future.valueは、すでに用意できている値をFutureでラップします。APIがFutureを要求しているものの、答えをすでに持っている場合に便利です。

Future<int> ready = Future.value(7);

thenでチェーンする

async/awaitが登場する前は、Futureの解決後にコールバックを実行するためにthenを使っていました。短いチェーンでは今でも便利です。

fetchScore().then((s) => print(s));

awaitのほうが読みやすい

入れ子になったthenコールバックと比べ、awaitを使うと、非同期コードを通常の同期処理と同じように上から下へ読めます。

asyncから値を返す

async関数から返した値は、Futureの値になります。何も返さない場合はFuture<void>になります。

awaitはasync内でのみ使う

awaitは、asyncが付いた関数内でのみ使えます。それ以外では、thenを使ってFutureを操作します。

クイックチェック

awaitの動作を確認しましょう。

まとめ:Future

これで、asyncでFutureを作成し、値をreturnで届け、awaitで取り出せるようになりました。非同期コードも同期コードと同じようにすっきり読めます。🚀

よくある質問

「Futureの作成とawait」レッスンは無料ですか?

はい。「Futureの作成とawait」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。

「Futureの作成とawait」で何を学びますか?

Futureの値を生成して利用する ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Dart Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Futureの作成とawait」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDart Academyレッスンでコードを書いて実行できますか?

はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. イベントループとマイクロタスク
  2. Futureの作成とawait
  3. asyncコードのエラーハンドリング
  4. Future.waitと並列処理
← Dart Academyに戻る