Flutter同时发起多个网络请求
Future概念
引用自Flutter中文网
Future与JavaScript中的Promise非常相似,表示一个异步操作的最终完成(或失败)及其结果值的表示。简单来说,它就是用于处理异步操作的,异步处理成功了就执行成功的操作,异步处理失败了就捕获错误或者停止后续操作。一个Future只会对应一个结果,要么成功,要么失败。
由于本身功能较多,这里我们只介绍其常用的API及特性。还有,请记住,Future 的所有API的返回值仍然是一个Future对象,所以可以很方便的进行链式调用。
发起多个网络请求的方式
直接上代码:
Future.wait([
// 2秒后返回结果
Future.delayed(new Duration(seconds: 2), () {
return "hello";
}),
// 4秒后返回结果
Future.delayed(new Duration(seconds: 4), () {
return " world";
})
]).then((results){
print(results[0]+results[1]);
}).catchError((e){
print(e);
});
这时候输出的是“hello world”
.
这段代码主要用到了Future.wait
这个函数,它接收一个Futre数组参数,只有数组中所有的Futre都执行成功后,才会触发then的成功回调,只要有一个Futre执行失败,就会触发错误回调。
还没有评论,来说两句吧...