【问题标题】:Writing/Converting Meteor Synchronous Functions编写/转换 Meteor 同步函数
【发布时间】:2013-11-06 03:52:45
【问题描述】:

这已经困扰了我一段时间,所以我想我只需对其进行快速 QA:

如果一个人有一个普通的 nodeJS 模块或其他东西,并且它在服务器端有一个异步功能。我如何使它同步。例如,我如何将 nodejs fs.stat 异步函数转换为同步函数。

例如我有

服务器端js

Meteor.methods({
    getStat:function() {
        fs.stat('/tmp/hello', function (err, result) {
            if (err) throw err;
            console.log(result)
        });
    }
});

如果我从客户端调用它,我会返回 undefined 作为结果,因为结果在回调中。

【问题讨论】:

    标签: asynchronous meteor sync node-fibers


    【解决方案1】:

    有一个名为Meteor.wrapAsync的函数(未记录)。

    简单地把函数包装起来

    Meteor.methods({
        getStat:function() {
            var getStat = Meteor._wrapAsync(fs.stat);
    
            return getStat('/tmp/hello');
        }
    });
    

    现在您将在Meteor.callresult 中获得此结果。您可以转换任何具有回调的异步函数,其中第一个参数是错误,第二个参数是结果。

    【讨论】:

    • @zimt28 它会抛出错误而不是通过回调传递它们,您可以使用try.. catch 来检查它们
    猜你喜欢
    • 2016-03-09
    • 1970-01-01
    • 2015-06-25
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 2016-07-02
    相关资源
    最近更新 更多