たるだめ

のんびりとなんか書きます

【Dart】Mapでasync/awaitを使ったforEachするときは、Future.forEachを使う

Dartのasync/awaitなforEachの書き方

書き方

Map<String, String> map = {"test": "hoge"};
await Future.forEach<MapEntry<String, String>>(map.entries, (x) async{
    await Future.delayed(Duration.zero, () => print("${x.key}:${x.value}"));
})

<MapEntry<String, String>>は指定したほうが安全。(Map の型に合わせて変更)

NG 例

Map<String, String> map = {"test": "hoge"};
map.forEach((k, v), async {
    await Future.delayed(Duration.zero, () => print("${key}:${value}"));
})

誰もが一回はやるんじゃないかなと思う。

JS の Array.prototype.forEach で await 使えないのと似ているなぁ。