Asynchronous 编写/转换Meteor同步函数
这困扰了我一段时间,所以我想我应该做一个快速的QA: 如果有一个普通的nodeJS模块或者其他什么,并且它在服务器端有一个异步函数。如何使其同步。例如,如何将nodejsAsynchronous 编写/转换Meteor同步函数,asynchronous,meteor,sync,node-fibers,Asynchronous,Meteor,Sync,Node Fibers,这困扰了我一段时间,所以我想我应该做一个快速的QA: 如果有一个普通的nodeJS模块或者其他什么,并且它在服务器端有一个异步函数。如何使其同步。例如,如何将nodejsfs.stat异步函数转换为同步函数 e、 g我有 服务器端js Meteor.methods({ getStat:function() { fs.stat('/tmp/hello', function (err, result) { if (err) throw err;
fs.stat
异步函数转换为同步函数
e、 g我有
服务器端js
Meteor.methods({
getStat:function() {
fs.stat('/tmp/hello', function (err, result) {
if (err) throw err;
console.log(result)
});
}
});
如果我从客户端调用它,我会返回未定义的,作为我的结果,因为结果在回调中。有一个名为Meteor.wrapAsync
的函数(未记录)
简单地将函数包装起来
Meteor.methods({
getStat:function() {
var getStat = Meteor._wrapAsync(fs.stat);
return getStat('/tmp/hello');
}
});
现在,您将在您的Meteor.call的结果中获得此结果。您可以转换任何具有回调的异步函数,其中第一个参数是错误,第二个参数是结果。@zimt28如果它将抛出错误,而不是通过回调传递错误,您可以使用try。。捕捉
以检查它们