Я работаю в проекте ReactJS и Meteor и обнаружил странное поведение, которое я опишу здесь:
Есть блок Tracker.autorun
с вызовом Meteor.subscribe
внутри. Все идет нормально. На стороне сервера есть соответствующий Meteor.publish
, который объявляет обратный вызов.
Насколько я понимаю, обратный вызов Meteor.publish
должен срабатывать один раз для каждой полученной подписки, но каким-то образом этот обратный вызов срабатывает 3-4 раза для одной подписки.
В моем последнем тесте блок Tracker.autorun
выполнялся 4 раза, подписка выполнялась только 1 раз и обратный вызов срабатывал 4 раза.
Meteor.subscribe
запускается только один раз, даже трекер запускается несколько раз. Как это могло вызвать обратный вызов, чтобы запустить больше один раз?
Имеет ли это смысл?
Знаете, чем можно объяснить такое поведение?
Если вам нужна какая-либо другая информация, просто дайте мне знать.
Заранее спасибо
Meteor.publish('current-user', function currentUser(credentials) {
return Users.find();
});
Tracker.autorun((c) => {
if (!currentUserHandler) {
currentUserHandler = Meteor.subscribe('current-user', this.credentials);
}
});