MST

星途 面试题库

面试题:Flutter中async/await实现并发操作的基础理解

在Flutter中,使用async/await实现并发操作时,`Future.wait`的作用是什么?请举例说明如何使用`Future.wait`结合async/await来并发执行多个异步任务,并处理它们的结果。
45.5万 热度难度
前端开发Flutter

知识考点

AI 面试

面试题答案

一键面试
  1. Future.wait的作用
    • Future.wait用于并发执行多个Future对象,并返回一个新的Future。这个新的Future会在所有传入的Future都完成(成功或失败)时完成。如果所有传入的Future都成功完成,新的Future会包含一个包含所有成功结果的列表;如果任何一个传入的Future失败,新的Future会以该失败的Future的错误终止。
  2. 示例代码
import 'dart:async';

void main() async {
  List<Future<int>> futures = [
    Future.delayed(const Duration(seconds: 1), () => 1),
    Future.delayed(const Duration(seconds: 2), () => 2),
    Future.delayed(const Duration(seconds: 3), () => 3)
  ];

  try {
    List results = await Future.wait(futures);
    print('所有任务完成,结果: $results');
  } catch (e) {
    print('有任务失败: $e');
  }
}

在上述代码中:

  • 首先定义了一个包含三个Future的列表futures,每个Future都延迟不同的时间并返回一个整数。
  • 然后使用Future.wait等待所有这些Future完成,并通过await获取它们的结果。如果所有Future都成功完成,results将是一个包含这些Future返回值的列表,并打印结果;如果有任何一个Future失败,catch块会捕获到错误并打印错误信息。