現在、ポリマー要素をテストしており、要素に変数が設定されるのを待つ必要があります。変数が設定されるのを待つように 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 は機能しますが、他のブラウザーは機能しません。