首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在颤振循环完成后,CountdownTimer正在运行

在颤振循环完成后,CountdownTimer正在运行
EN

Stack Overflow用户
提问于 2020-05-03 12:37:03
回答 1查看 192关注 0票数 0

我正在尝试构建一个应用程序,它需要一个倒计时来向用户显示时间还有多少时间。但是循环不像我预料的那样起作用。

代码语言:javascript
复制
for(int i=0;i<widget.sets;i++)
      {
        while(j<5){
          CountdownTimer(Duration(seconds: 2), Duration(seconds: 1)).listen((data){
          })..onData((data){
            print(data.elapsed.inSeconds.toString());
          })..onDone((){
            print('onDone.........');
          });
          print('Hello');
          j++;
        }
        j=0;
        print((i+1).toString());
      }

我得到了这个输出

颤振:你好颤振:1颤振:1颤振:2颤振:onDone.颤振:2颤振:onDone.颤振:2颤振:onDone.颤振:2颤振:onDone.颤振:2颤振:onDone.颤振:2颤振:onDone.颤振:2颤振:onDone.颤振:2颤振:onDone.颤振:2颤振:onDone.颤振:2颤振:onDone.

我期望的输出是

代码语言:javascript
复制
flutter: 1
flutter: 4
flutter: 3
flutter: 4
flutter: 5
flutter: onDone.........
flutter: Hello
flutter: 1
flutter: 4
flutter: 3
flutter: 4
flutter: 5
flutter: onDone.........
flutter: Hello

以此类推。如何使此代码正常工作?

EN

回答 1

Stack Overflow用户

发布于 2020-05-03 13:37:25

我想这是因为循环中的所有计时器都是同时创建的,所以每一秒都会打印相同的值。

也许您应该在某个时候使用异步挂起,比如await Future.delayed(Duration(seconds:1));

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61574545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档