我意识到,在当前飞镖SDK版本0.4.1.0_r19425方法,如setTimeout
,setInterval
,clearTimeout
,clearInterval
没有Window
类的部分更多,他们都搬到了WorkerContext
。
现在有没有关于如何使用它们的文档?每次我想要使用它们时,是否需要创建一个新的WorkerContext
实例?如何使用的setInterval/setTimeout的在DART SDK 0.4+
9
A
回答
15
除了由克里斯提到的定时器,有一个Future-based API:
var future = new Future.delayed(const Duration(milliseconds: 10), doStuffCallback);
没有取消的Future回调尚未直接支持,但这个工作得很好:
var future = new Future.delayed(const Duration(milliseconds: 10));
var subscription = future.asStream().listen(doStuffCallback);
// ...
subscription.cancel();
7
从此post on the group(2013年2月14日)。
// Old Version
window.setTimeout(() { doStuff(); }, 0);
// New Version
import 'dart:async';
Timer.run(doStuffCallback);
而另一示例(从相同的交复制)
// Old version:
var id = window.setTimeout(doStuffCallback, 10);
.... some time later....
window.clearTimeout(id);
id = window.setInterval(doStuffCallback, 1000);
window.clearInterval(id);
// New version:
var timer = new Timer(const Duration(milliseconds: 10), doStuffCallback);
... some time later ---
timer.cancel();
timer = new Timer.repeating(const Duration(seconds: 1), doStuffCallback);
timer.cancel();
具体地,它们是目前在dart:async
库(而不是WorkerContext
,这似乎是索引资料特定的)的Timer
类的一部分。 API docs here
+3
我谨慎使用计时器,除非你把计时器内的try/catch。如果在Timer内部抛出异常,并且您没有捕获它,则游戏结束并结束应用。您可能想要使用Future.delayed,它不仅正确捕获异常,而且还提供了一个知道何时实际完成的句柄。期货构成也更好。 – 2013-03-10 16:13:35
相关问题
- 1. 如何使用Dart的LevelDB?
- 2. 我如何告诉Dart编辑器使用SDK的PATH位置?
- 3. 如何安装适用于Linux的Dart SDK的ZIP版本?
- 4. 如何使用旧版Dart编辑器
- 5. 如何使用dart库的webdriver?
- 6. 如何在Dart中使用animationFrame?
- 7. 如何在DART应用
- 8. 如何使用dart软件包部署dart web应用程序?
- 9. Raspberry Pi上的Dart SDK编译失败
- 10. 的NodeJS v0.10 VS 0.4
- 11. 如何使用Google Dart web-ui @observable standalone?
- 12. Dart IO process.run('pbcopy',[]) - 如何使用?
- 13. 如何在Dart中使用新的Streams API执行stdin.close()?
- 14. 开关从0.4
- 15. 如何调用由JavaScript创建的使用DDC的Dart库?
- 16. 如何获得在DART
- 17. 已准备好使用Node js 0.4.x
- 18. SAXParseException使用Python和泡沫0.4?
- 19. 如何写佣工新咕噜0.4
- 20. 如何运行grunt 0.4。* without grunt-cli
- 21. 解决Julia 0.4弃用Uint64
- 22. 如何防止使用dart软件包的gitub repo扩散?
- 23. 如何使用Dart获取点击元素的文本内容?
- 24. 如何防止使用dart中的expectAsync进行单元测试?
- 25. 如何使用具有不同文件结构的Dart Polymer?
- 26. 你如何使用Dart的命令行测试运行器?
- 27. 如何使用Dart中的URL设置CSS背景图片?
- 28. 如何使用Dart在浏览器中读取cookie?
- 29. 如何在dart .polymer 1项目中使用子目录?
- 30. 在DART
所以如果我理解正确的话,使用Future是推荐的方法。 – martin 2013-03-10 20:41:51