Flutter同时发起多个网络请求

秒速五厘米 2021-06-30 09:50 961阅读 0赞

Future概念

引用自Flutter中文网

Future与JavaScript中的Promise非常相似,表示一个异步操作的最终完成(或失败)及其结果值的表示。简单来说,它就是用于处理异步操作的,异步处理成功了就执行成功的操作,异步处理失败了就捕获错误或者停止后续操作。一个Future只会对应一个结果,要么成功,要么失败。

由于本身功能较多,这里我们只介绍其常用的API及特性。还有,请记住,Future 的所有API的返回值仍然是一个Future对象,所以可以很方便的进行链式调用。

发起多个网络请求的方式

直接上代码:

  1. Future.wait([
  2. // 2秒后返回结果
  3. Future.delayed(new Duration(seconds: 2), () {
  4. return "hello";
  5. }),
  6. // 4秒后返回结果
  7. Future.delayed(new Duration(seconds: 4), () {
  8. return " world";
  9. })
  10. ]).then((results){
  11. print(results[0]+results[1]);
  12. }).catchError((e){
  13. print(e);
  14. });

这时候输出的是“hello world”.

这段代码主要用到了Future.wait这个函数,它接收一个Futre数组参数,只有数组中所有的Futre都执行成功后,才会触发then的成功回调,只要有一个Futre执行失败,就会触发错误回调。

发表评论

表情:
评论列表 (有 0 条评论,961人围观)

还没有评论,来说两句吧...

相关阅读