异步,一次亿步 Flutter

65 阅读1分钟

在接触用异步去加载图片时,我是这样的 根据id下载图片一次一张

 await newfetchImageFromServer(int imageId)

这样下载时,还以为是加载慢速 ... ... ... 就这样一直没处理 直到有一天打算处理这个问题,突然发现,为什么不一次性多一步(异步)? 所以就去搜了资料

.. ... ... 找到了这个东西 List<Future> 用它来存储多个异步操作(虽然不知道怎么更好叫他) 使用方法则是 (newfetchImageFromServer是我的异步方法,根据id在服务器里获取图片并下载)

List<Future> fetchTasks = [];  
int startId = _items.length + 1; // 从当前 _items.length 开始计数  
for (int i = 0; i < 10; i++) {  
  final imageId = startId + i; // 为每个任务生成唯一的 imageId  fetchTasks.add(newfetchImageFromServer(imageId)); // 将每个图片加载任务添加到列表中  
  print('$i添加到列表中id ${imageId}');  
}  
// 等待所有任务完成  
await Future.wait(fetchTasks);  
// 所有图片加载完成后,更新 UI
print('所有图片加载完成');

这样他就会一口气十步去下载图片,大大提高速度问题