Listに対し、map関数でasync/awaitしたいとき
method() が Future<Hoge>を返すメソッドだとして
List<Hoge> hogeList = elements.map((e) async => await method(e)).toList();これはNG。
この場合、hogeListはList<Future<Hoge>>のため、型エラーとなる。
map自体が返却する対象がasyncされているためFuture型を返すことになり、こういった挙動になる。
これを解消するためには、Future.waitを利用する。
これを使うことで非同期処理を並列に処理できるため、Iterable<Future<T>>を全て処理した上で返却してくれる。
List<Hoge> hogeList = await Future.wait(elements.map((e) => method(doc)).toList());