Ember有以下setTimeout
的实现,建议开发人员使用,因为代码被添加到run循环中,这对测试有好处。
Ember.run.later((function() {
console.log("will run once after 1000");
}), 1000);
是否有类似的Ember替换setInterval
,以及隐含的clearInterval
(用于取消setInterval)?我需要每1000毫秒运行一次someFunc
this.intervalId = setInterval(this.someFunc.bind(this), 1000);
4条答案
按热度按时间c86crjj01#
我不知道有什么等效的代码,但我使用这样的代码来实现以下功能:
然后,示例化轮询器:
var poller = Poller.create()
,然后你可以玩poller.start()
和poller.stop()
+ set通过poller.setInterval(interval)
设置间隔。在我的代码中,我或多或少是这样做的(每10秒轮询一次报告):
希望这对你有帮助...
wkftcu5l2#
我一直在玩实现“setInterval”在ember辛烷的方式,我认为这是最简单和干净的解决方案:
index.hbs:
controllers/index.js
63lcw9qa3#
另一种选择是使用ember-poll插件。在内部,它的作用与@andrusieczko Poller对象相同(两者都考虑到Ember Run Loop)。从Ember开发者的Angular ,您可以访问
poll
服务。只需安装加载项:
npm install ember-poll --save-dev
.示例:
kuhbmx9i4#
在
ember -v 1.18
中测试这就是我在组件中所做的。这工作得非常好,应该是理想的方法。如果你在区间内处理异步承诺对象,确保在
willDestroyElement()
钩子或其他地方杀死它。