小编Mig*_*usa的帖子

使用 Timer 而不是 Future.delayed(...) 创建异步等待步骤

是否可以使用Timer而不是执行异步步骤Future.delayed?主要原因是类cancel()中方法的可用性Timer,它允许我在 Flutter 中处理小部件时取消正在运行的计时器。

import 'dart:async';

const kFirstStepDuration = Duration(seconds: 1);
const kSecondStepDuration = Duration(seconds: 1);
const kThirdStepDuration = Duration(seconds: 1);

void main() async{
  await Future.delayed(kFirstStepDuration);
  print('first step');
  await Future.delayed(kSecondStepDuration);
  print('second step');
  await Future.delayed(kThirdStepDuration);
  print('end');
}
Run Code Online (Sandbox Code Playgroud)

使用 Richard Heap 答案后的计时器,我想尽可能取消这些步骤,但下面的代码提示:

first timer to begin
cancel first
cancel second
cancel third
Run Code Online (Sandbox Code Playgroud)

我的期望是提示:

first timer to begin
cancel first
second timer to begin
cancel second
third timer to begin
cancel third
executed in 0:00:00.06000
Run Code Online (Sandbox Code Playgroud)
import …
Run Code Online (Sandbox Code Playgroud)

timer dart dart-async flutter

3
推荐指数
1
解决办法
3521
查看次数

标签 统计

dart ×1

dart-async ×1

flutter ×1

timer ×1