dictionary - 如何避免通过foreach函数在dart Map中使用await键

标签 dictionary asynchronous foreach dart async-await

所以,我有一个 map ,它与使用内部项目的一些异步处理有关。我使用了 forEach 循环构造,并且回调内部被设计为异步,因为我在迭代主体内部调用了 await

myMap.forEach((a, b) { await myAsyncFunc(); } );
callFunc();

我需要在迭代所有项目后调用 callFunc()。但是 forEach 立即退出。帮助!

最佳答案

Map.entries 上使用 for 循环而不是 forEach。如果您处于异步函数中,则 for 循环体中的 await-ing 将暂停迭代。条目对象还允许您访问键和值。

Future<void> myFunction() async {
  for (var entry in myMap.entries) {
    await myAsyncFunction(entry.key, entry.value);
  }
  callFunc();
}

关于dictionary - 如何避免通过foreach函数在dart Map中使用await键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52276412/

相关文章:

php - 如何使用 PHP 中的 foreach 循环在 html 中创建表格

python - 有什么比 dict.get(<thing>, dict.get(<other>)) 更好的吗?

c# - 格式化字典的键值

c# - 如何重试先前的异步任务

c# - foreach 语句给出错误

java - 使用具有 Maps 键集的流时出现 ConcurrentModificationException

python - 如何创建 key 列表 :value pairs in a for loop?

.net - Dictionary<TKey, TValue> 是否在后备存储中添加空元素?

ios - 如何管理多个异步 NSURLConnection 请求

c++ - 串口异步IO