vpulim:node-soapを使用してSOAPサーバーを実行しています。
私の流星サーバーの起動には、他のさまざまなコードの中にこれが含まれています。
authRequestOperation: function(args,cb,headers,req) {
console.log(args);
var authResponceObject = {};
var futureAuthResponse = new Future();
Fiber(function(){
if(collectorUsers.findOne({username: args.username})){
console.log("Found User");
authResponceObject = {
username: args.username,
nonce: Random.id()
};
console.log("authResponceObject is: " + JSON.stringify(authResponceObject,null,4));
console.log("futureAuthResponse returning...");
futureAuthResponse.return(authResponceObject);
}
// console.log("futureAuthResponse waiting...");
// return futureAuthResponse.wait();
}).run();
console.log("authResponceObject after fiber is: " + JSON.stringify(authResponceObject,null,4));
return authResponceObject;
},
私がやろうとしていることは次のとおりです。
- クライアントからユーザー オブジェクトを受け取ります。
- ユーザーがmongodbに存在するかどうかを確認します
- ユーザーが存在する場合は、応答オブジェクトを準備します
- 応答オブジェクトでクライアントに応答します。
1. 働いています。ただし、非同期呼び出しなのに、2,3,4 の順番がめちゃくちゃ。
現在起こっていることは次のとおりです。
- クライアントオブジェクトを受け取る
- 応答オブジェクトを返します (空です)
- モンゴをチェック
- 応答オブジェクトを準備します。
上記にはMeteor.methodsを使用していません。これを正しい方法で機能させるにはどうすればよいですか?私はジャグリングを試みましwrapAsync
たfiber/future
が、行き止まりにぶつかりました。