Meteor.method
の定義では、コールバックを呼び出さずに結果を返す必要があることにちょっと驚きました。しかし、そうです!Meteor.methodから返される前にサブプロセスの結果を待つ方法
メイオールでRPCメソッドを作成しようとしています。メイオールのグループメソッドを呼びます(メテオのデータのようには見えませんでした。私はこのようなものがあります。仕事...私は私の流星クライアントからの呼び出しを取得しない上記掲載のコードの
Meteor.methods
getdata: ->
mongoose = __meteor_bootstrap__.require('mongoose')
db = mongoose.connect(__meteor_bootstrap__.mongo_url)
ASchema = new mongoose.Schema()
ASchema.add({key: String})
AObject = mongoose.model('AObject',ASchema)
AObject.collection.group(
...
...
(err,doc) -> # mongoose callback function
# I want to return some variation of 'doc'
)
return ??? # I need to return 'doc' here.
私自身の変化を、マングースは、すべてが自分の魔法をかけるオブジェクト。しかし、私の結果を元の文脈の中に戻す方法を理解することはできません。
どうすればいいですか?
私は自分のコードになるだろうといった答えは次のようになります。
require = __meteor_bootstrap__.require
Meteor.methods
getdata: ->
mongoose = require('mongoose')
Future = require('fibers/future')
db = mongoose.connect(__meteor_bootstrap__.mongo_url)
ASchema = new mongoose.Schema()
ASchema.add({key: String})
AObject = mongoose.model('AObject',ASchema)
group = Future.wrap(AObject.collection.group,6)
docs = group.call(AObject,collection,
...
...
).wait()
return docs
あなた自身の回答を受け入れることができます。私はそれがここで正当化されると思います。あなたはしばらく待たなければなりません。 –
申し訳ありませんが、私はそこで一気に興奮し、自分自身を助けることができませんでした。 – dsummersl
私は不平を言っているわけではありません。私は、将来の調査者が同様の問題を解決しやすくするためにあなた自身の答えを受け入れることを提案しています。 –