Метеор: Как запустить повторный запуск вспомогательной функции после true, когда collectionHandle.ready ()

Это новая версия моей старойвопрос:

Так что благодаря помощи Тома Коулмана я наконец понял, как правильно проверить, готова ли подписка () или нет.

Моя текущая структура кода выглядит следующим образом:

/client/app.js:

eventsHandle = null;
groupsHandle = null;
// ...
// First Deps.autorun():
// Does not depend on any Session var, should just run every time
Deps.autorun(function() {
    eventsHandle = Meteor.subscribe("events", function() {
        console.log('Deps.autorun(): Events loaded');
    });
});

// Second Deps.autorun():
// contains all subscriptions which are dependent on my Session var "ehash"
Deps.autorun(function() {
    if(Session.get('ehash'))
        groupsHandle = Meteor.subscribe("groups", Session.get('ehash'), function() {
            console.log('Deps.autorun(): Groups loaded with ehash: ' + Session.get('ehash'));
        });
});
// ...

Затем я просматриваю конкретные файлы .js и .html для всех шаблонов в папке с именем:

/client/views/
--> <page>.js:

Template.x.dataLoaded = function() {
    if(Session.get('ehash'))
        if(eventsHandle && groupsHandle && eventsHandle.ready() && groupsHandle.ready()) {
            console.log('All data loaded!');
            singleevent = Events.find({ehash: Session.get('ehash')}).fetch()[0];
            return true;
        } 
}

Этот помощникdataLoaded оборачивает в основном все в соответствующий шаблон и показывает содержимое, когдаdataLoaded возвращает true или показывает загрузочный счетчик.

Проблема в том, что во многих случаях это не работает, потому что этот код dataLoaded запускается только один раз. Поэтому, если эти два дескриптора НЕ готовы () во время выполнения dataLoaded, содержимое НИКОГДА не будет отображаться. В этом случае я все еще вижу все console.log, поступающие из файла app.js (материал Deps.autorun ()), но журнал "Все данные загружены!" никогда не повторяется.

Итак, мой вопрос: как мне запустить повторный запуск этого кода такdataLoaded запускается снова, чтобы в конечном итоге отображался контент

с уважением

Ответы на вопрос(4)

Ваш ответ на вопрос