Так что я звоню метод от клиента, который имеет функцию обратного вызова:Обратный вызов в клиенте для метода Метеор вызова возвращения неопределенными
Meteor.call("readHeaders", Meteor.user().emails[0].address+'/'+Session.get("file1"),
function(err,result){
console.log(result);
});
и здесь есть метод, который называют:
readHeaders: function(fileName){
var nodeFS = Meteor.npmRequire('node-fs');
nodeFS.readFile("somepath/"+fileName,'utf8', function read(err, data){
if (err) {
throw err;
}
var headers = [data.slice(0,data.indexOf('\n')).split(",")];
return headers;
});
}
Правильный результат печатается на сервере, но на клиенте он возвращает undefined. Какие-либо предложения?
Вы пробовали регистрировать ошибку в консоли на клиенте, чтобы узнать, что это такое? Возможно, вам придется использовать Meteor.bindEnvironment для обратного вызова readFile, поскольку вы выполняете асинхронный вызов в библиотеке внешних узлов. – danSiebes
http://stackoverflow.com/questions/12569712/meteor-calling-an-asynchronous-function-inside-a-meteor-method-and-returning-th/21542356#21542356 –
@BrianShamblen У него есть обратный вызов, это не так. Кажется, это проблема асинхронности. – ffxsam