对于上下文,假设我有 Flutter 代码,它显示CircularProgressIndicator正在从 API 获取代码:
Future<void> getItems() async {
setState(ViewState.Busy);
items = await _api.getItems();
setState(ViewState.Idle);
}
Run Code Online (Sandbox Code Playgroud)
为了使CircularProgressIndicator不会只显示几分之一秒(我发现这会扰乱相关动画的流程),我想让这个指示器显示最少的时间。
我想我可以使用 Future API 或计时器来解决这个问题,通过某种方式设置HTTP 请求未来可以花费的最短时间。我怎样才能做到这一点?
我经常使用这种模式。Future-wait 接受一个 Futures 列表。它并行执行它们,并且返回都将完成。我觉得它看起来干净多了。
https://api.dartlang.org/stable/2.3.1/dart-async/Future/wait.html
List<Future> futures = [];
futures.add(Future.delayed(Duration(seconds: 1)));
futures.add(_api.getItems());
await Future.wait(futures);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
644 次 |
| 最近记录: |