Неужели кто-нибудь сталкивается с проблемами с вызовом асинхронного полимера в FireFox? Мой сайт хорошо работает в последней версии Chrome, но не так много удачи в FireFox. Одной из первых вещей, которые должен предпринять сайт, является извлечение некоторых коллекций объектов из базы данных (через API-интерфейс core-ajax/REST). Сразу же после вызова функций, необходимых для извлечения коллекций, я вызываю функцию, которая асинхронно заполняет локальные переменные хранилища с результирующими наборами из различных элементов данных, которые вызывают вызовы ajax и обрабатывают ответы. FireFox вызывает функцию populateLocalStorage
, указанную в качестве аргумента для вызова async
, но в отличие от Chrome, вызов происходит до того, как элементы источника данных получили свои ответы ajax и обработали их соответствующим образом. Поэтому «_bugs» и «_snakes» (в этом примере) заканчиваются как неопределенные. Вот сценарий отрывок из полимерного элемента вопроса:Полимер async не работает в FireFox
<script>
Polymer('my-app-index', {
bugs: null,
snakes: null,
spiders: null,
ready: function() {
this.retrieveCollections();
},
retrieveCollections: function() {
// custom datasource elements that make necessary ajax call(s)
// (using core-ajax), and handle ajax responses appropriately
// This element accesses the resulting collections via 2 way databinding
// to the datasource(s) element attributes
this.$.bugsDS.getAll();
this.$.snakesDS.getAll();
this.$.spidersDS.getAll();
this.async(this.populateLocalStorage); // Populate local storage with resulting collections
},
populateLocalStorage: function() {
mynamespace._bugs = this.bugs;
mynamespace._snakes = this.snakes;
}
});
</script>
Определенно нужен обратная связь на вот этот. Я что-то делаю неправильно? Может ли кто-нибудь воспроизвести эту же проблему, если хотя бы подтвердить, что я не сумасшедший? – sinjins