关于多次执行异步函数

来源:11-3 Flutter Android混合开发实战-集成与调用【Android技术与Flutter融合】

RobinYeung

2020-08-06

开发过程中遇到一个问题:

void main() async {
  Future<dynamic> call1 = call;
  print(await call1);
  print(await call1);
  print(await call);
  print(await call);
  print(call1.runtimeType);
  print(call.runtimeType);
}

dynamic get call async {
  print("hello");
  return "world";
}

对于以上代码,输出如下:

hello
world
world
hello
world
hello
world
_Future<dynamic>
hello
_Future<dynamic>

我的问题是,为什么第二次 await call1时,call里面的hello并没有打印,但多次await call时,里面的hello都会打印。它们的runtimeType明明也是相同的。

遇到这个问题,我的实际情况是想从外面传一个函数进来,如果遇到错误时可以再次回调执行重试,但传进来赋值在Future里再次await,却没有执行,请教老师

写回答

1回答

CrazyCodeBoy

2020-08-07

你将Future<dynamic> call1改成var call1试一下

0
1
RobinYeung
改成 var call1和改成dynamic call1,运行结果都是一样的
2020-08-07
共1条回复

Flutter从入门到进阶 实战携程网App 一网打尽核心技术

解锁Flutter开发新姿势,,系统掌握Flutter开发核心技术。

4788 学习 · 3274 问题

查看课程