ember-test 应该什么时候清除它的计时器?

When should an ember-test clear its timers?

我有一个较旧的 Ember-cli 应用程序,我刚刚更新到所有最新的依赖项和文件格式,我 运行 ember initember-cli@0.2.0-beta.1,但是当我尝试使用 visit() 助手编写验收测试时,内部 wait 函数永远不会解析。

我能够追踪到的最远的问题是在 bower_components/ember/ember.js 文件中的 wait 函数中,在该行 if (run.hasScheduledTimers() || run.currentRunLoop) { return; }

backburner 上有一个计时器,但一次又一次,循环 returns 这里,似乎永远没有机会清除计时器。

我很确定计时器应该确保 wait 助手在 ajax 请求后等待,但 ajax 请求早已解决。哎呀,如果还有待处理的请求,我们就会退出这个函数。

任何对此过程的见解都将不胜感激!!

我在循环中的应用程序中有一个 Em.run.later 实例,用于递归检查超时。事实证明,这并不少见!

我的解决方案是将 run.later 块放入当前环境的条件检查中,并在测试中禁用它。