核心代码示例
import 'dart:async';
import 'package:http/http.dart' as http;
List<String> urls = [
'https://example.com/api1',
'https://example.com/api2',
'https://example.com/api3'
];
Future<void> executeRequestQueue() async {
for (var url in urls) {
try {
var response = await http.get(Uri.parse(url));
print('Response from $url: ${response.statusCode}');
} catch (e) {
print('Error occurred while fetching $url: $e');
}
}
}
原理解释
- 定义请求队列:首先定义一个包含多个网络请求URL的列表
urls
,这代表了需要依次执行的网络请求队列。
- 循环执行请求:使用
for
循环遍历urls
列表。在每次循环中,使用http.get
发起一个网络请求,await
关键字会暂停当前函数的执行,直到这个网络请求完成(即Future
被解决)。这就确保了每个请求都是在前一个请求完成之后才开始执行,从而实现了依次执行的效果。
- 错误处理:在
try - catch
块中捕获可能发生的错误,并进行相应的错误处理,打印出错误信息,保证程序在遇到网络请求错误时不会崩溃。