2020/2/27 Dart Asynchronous programming: futures, async, await

このcodelabでは、非同期処理をfuturesとasync、awaitキーワードを用いて記述する方法を扱います。

このcodelabでは以下の要素を扱います。

  • いつ、どのようにasync、awaitキーワードを使うか
  • 実行の順番がasync、awaitキーワードを使うことでどのようになるか
  • async関数の中で、非同期関数が発するエラーをtry-catch文を使い扱う方法

なぜ非同期処理が重要なのか?(Why asynchronous code matters)

非同期処理を使うことで、別の処理の終了を待っているときのプログラムが完璧にできます。非同期処理を使う場面として

  • ネットワークからデータを取得する
  • データベースに書き込む
  • ファイルからデータを読み込む

Dartで非同期処理を実行するために、Futureクラスとasync、awaitキーワードを使うことができます。

Example:非同期関数の間違った使い方の例

以下(sample1-1)に非同期関数( fetchUserOrder() )の間違った使い方を示します。その後でasync,awaitを使ってこのサンプルを修正します。このサンプルを実行する前に、結果がどうなるか考えてみてください。

sample1-1

String createOrderMessage () {
  var order = fetchUserOrder();
  return 'Your order is: $order';
}

Future<String> fetchUserOrder() {
  // Imagine that this