1

我目前正在测试一个聚合物元素,需要等待在我的元素中设置一个变量。在搜索了如何指示 Javascript 等待设置变量后,我想出了以下代码:

var behavior;

setup(function(){
  behavior = fixture("behavior");
});


test('Behavior loads resources', function(done) {
  var waitForI18n = function() {
      if(behavior.isI18nLoaded){
        clearInterval(interval);
        expect(behavior.getKey("test")).to.be.equal("test" + behavior.language.toUpperCase());
        done();
      }
  };
  var interval = setInterval(waitForI18n, 50);
});

适用于 Chrome,但其他浏览器只是冻结并最终崩溃:IE11、Edge、Firefox。我能够在 Firefox 中得到“递归过多”错误,但除此之外没有太多。

我做错什么了吗?有任何想法吗?我试过递归 setTimeout,但行为是一样的:Chrome 可以工作,但其他浏览器不行。

4

0 回答 0