Я пытаюсь передать значение в обратном вызове метода асинхронного метеор. «MongoCollections» является глобальной переменнойМетод метеор не возвращается при передаче значения
// Async method
let waiter = function(cb) {
setTimeout(() => {
cb(undefined, {data: 'test', other: mongoCollections})
}, 1000);
}
// Meteor method
Meteor.methods({
'getCollections':() => {
let func = Meteor.wrapAsync(waiter);
let res = func();
return res;
}
});
На клиенте
Meteor.call('getCollections', (err, res) => {
console.log(err, res)
});
Вопрос заключается в том, что в своем нынешнем состоянии клиент обратного вызова не не уволят, не ошибка или что-нибудь.
Но если я удалю часть объекта «other: mongoCollections», тогда обратный вызов будет запущен. Почему отправка mongoCollections предотвращает увольнение обратного вызова? Если есть ошибка, как я могу ее поймать?
Благодарим за ответ: «mongoCollections» правильно регистрируется в терминале при запуске console.log (mongoCollections) в обратном вызове setTimeout. Фактически, когда я отправляю обратно «other: typeof _mongoCollections», клиент действительно регистрирует «объект», что является правильным, но удаление «typeof» снова останавливает обратный вызов от выполнения вообще. – wazzaday
... что приводит к альтернативной возможности. Ответ обновлен. –
спасибо, сериализуя объект работал. :) – wazzaday