0
にMeteor.call結果を待ちしてMeteor.callメソッドの結果を待つ方法を理解していないのです。 これは私のコードコンソールで私はJavaScript.Iに新しいですクライアント
//client/main.js
//Added the callback
Template.hello.events({
'click button'(event, instance) {
// increment the counter when button is clicked
instance.counter.set(instance.counter.get() + 1);
var res = Meteor.call("callMeLater","sanj",function (err,res) {
if (err) {
console.log(err);
} else {
console.log("this is the result main ", res);
}
});
console.log("this is the result ", res);
}
//server/main.js
Meteor.methods({
callMeLater :function (name) {
var callMeLaterSync =Meteor.wrapAsync(callMeLaterAsync);
var result = callMeLaterSync(name);
console.log("this is the test", result);
return result;
}
});
var callMeLaterAsync = function (name,cb) {
setTimeout(function() {
cb && cb (null ,"hey there, "+name);
},2000);
};
ですが、私はどのように私は、クライアントで実行をブロックすることによりMeteor.callの結果を待たない
this is the result undefined
this is the result main hey there, sanj
を取得します。 ただ、コールバックメソッドにコードを置く
おかげ
クライアントでブロックしたくない(できない)ブロックです。 Meteor.callは、コールバック関数の中で行く必要が後に実行する必要が何か(つまり、あなたは(「これはメインの結果である」、RES) 'はconsole.logを行っている;' – Adam
だから私は、セッションまたはReactive-を使用VAR?私はあなたが混同されるかもしれないと思う –
?受信した結果は、これが最善の解決策であるreflected.Isされるようになっている。2「の解像度が」あなたのコード内の変数は完全に分離されています。あなたが唯一の流星で「RES」を扱うことができます。あなたは「これが主な結果である」( 'はconsole.logを行っているところコールバック関数(すなわちを呼び出し、RES);'あなたはそのセッションVARまたは反応VAR、または単に典型的には(あなたが好きしかし、RES保存することができますJS VAR。あなたはそれをどうしようとは何ですか? – Adam