【发布时间】:2015-09-05 07:27:20
【问题描述】:
所以我从客户端调用了一个有回调的方法:
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;
});
}
正确的结果在服务器上打印,但在客户端返回未定义。有什么建议吗?
【问题讨论】:
-
您是否尝试在客户端的控制台中记录错误以查看它是什么?您可能需要在 readFile 回调上使用 Meteor.bindEnvironment,因为您正在对外部节点库进行异步调用。
-
@BrianShamblen 他有一个回调,这似乎不是异步问题。
-
您在 fs 函数的回调中返回标头值。此时,meteor 方法已经返回。查看纤程或 wrapAsync。
标签: javascript meteor