MST

星途 面试题库

面试题:Flutter中如何使用Future进行异步操作并处理错误

在Flutter项目中,要求你通过Future实现一个异步获取网络数据的功能,并在获取失败时进行简单的错误提示。请描述实现思路并给出关键代码片段。
26.1万 热度难度
前端开发Flutter

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 使用http库来发起网络请求,因为Flutter本身没有内置的网络请求功能。
  2. 定义一个函数,该函数返回一个Future,在函数内部发起网络请求。
  3. 使用try-catch块来捕获请求过程中可能出现的异常,在捕获到异常时显示错误提示。
  4. Future成功完成时,解析响应数据并返回。

关键代码片段

  1. 首先添加http依赖到pubspec.yaml文件:
dependencies:
  http: ^0.13.4
  1. 然后编写获取网络数据的函数:
import 'package:http/http.dart' as http;
import 'dart:convert';

Future<dynamic> fetchData() async {
  try {
    // 发起网络请求
    var response = await http.get(Uri.parse('YOUR_API_URL'));
    if (response.statusCode == 200) {
      // 解析响应数据
      return jsonDecode(response.body);
    } else {
      throw Exception('Failed to load data, status code: ${response.statusCode}');
    }
  } catch (e) {
    // 捕获异常并显示错误提示
    print('Error: $e');
    return null;
  }
}
  1. 在使用的地方调用该函数:
void main() async {
  var data = await fetchData();
  if (data != null) {
    print('Data fetched successfully: $data');
  } else {
    print('Failed to fetch data');
  }
}