MST

星途 面试题库

面试题:Flutter中如何使用Dio库实现网络请求的并发处理

在Flutter项目中,要求使用Dio库实现两个网络请求并发执行,并在两个请求都完成后统一处理结果,描述实现思路并给出关键代码示例。
39.6万 热度难度
前端开发Flutter

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 引入dio库,用于发起网络请求。
  2. 使用Future.wait方法,该方法接收一个Future对象的列表,会等待列表中的所有Future都完成,然后返回一个包含所有结果的列表。
  3. Future.wait的回调中统一处理两个网络请求的结果。

关键代码示例

import 'package:dio/dio.dart';

void main() async {
  Dio dio = Dio();
  List<Future<Response>> futures = [
    dio.get('https://example.com/api1'), 
    dio.get('https://example.com/api2') 
  ];

  try {
    List<Response> responses = await Future.wait(futures);
    // 处理第一个请求的结果
    Response response1 = responses[0];
    print('第一个请求结果: ${response1.data}');
    // 处理第二个请求的结果
    Response response2 = responses[1];
    print('第二个请求结果: ${response2.data}');
  } catch (e) {
    print('请求出错: $e');
  }
}