5

これはしばらく気になっていたので、簡単な QA を行うことにしました。

通常のnodeJSモジュールか何かがあり、サーバー側に非同期機能がある場合。どうすれば同期できますか。たとえば、nodejsfs.stat非同期関数を同期関数に変換するにはどうすればよいでしょうか。

たとえば、私は持っています

サーバーサイドjs

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

クライアントから呼び出すとundefined、結果がコールバックにあるため、結果として返されます。

4

1 に答える 1

7

という関数 (文書化されていない) がありMeteor.wrapAsyncます。

関数をラップするだけ

Meteor.methods({
    getStat:function() {
        var getStat = Meteor._wrapAsync(fs.stat);

        return getStat('/tmp/hello');
    }
});

これで、 の でこの結果が得られresultますMeteor.call。最初のパラメーターがエラーで、2 番目のパラメーターが結果であるコールバックを持つ任意の非同期関数を変換できます。

于 2013-10-27T09:58:07.823 に答える