Похоже, вы путаете вещи. Вам в основном нужен только объект подписки, если вы хотите сделать подписку на .stop()
.
Когда последний аргумент .subscribe()
является функцией, он интерпретируется как обратный вызов onReady()
.
Контекст обратного вызоване будет объектом подписки. Это будет какой-то контекст владения, в котором функция вызывается, как обычно в Javascript. А в случае подписки на Meteor onReady callback это не определено.
Таким образом, в обратном вызове вы не можете положиться на this
, только на переменные, которые у вас есть в области или закрытии (например, ваш self
).
Если вы хотите сделать .find()
, когда подписка будет готова, вам нужно установить флаг состояния, сигнализирующий об этом, а затем иметь функцию, которая зависит от значения этого флага состояния, который делает .find()
коллекция объект, а не объект подписки.
self.setState({ getOrgDetailReady: true });
затем в одном из методов жизненного цикла, которые работают при изменении состояния (который один зависит от кода ...) вы делаете:
if(this.state.getOrgDetailReady) {
let orgDetails = orgDetailCollection.find().fetch();
...
}
Как я могу установить государственный флаг для выполнения функции если подписка готова? – JMA
Я привел пример этого в конце ответа. –