質問は少し古いですが、私の2セント:
MOLDAはコメントで言ったように、今後の主な目的は、非同期物事を同期動作させるためです。 future
インスタンスは、3つの方法が付属しています:
future.wait()
基本的には基本的に再開するように言われるまで一時停止するためにあなたのスレッドを伝えます。それはRETがあなたの返り値は一度再開となりconst ret = future.wait()
のような行ため、待ち時間は、その後に割り当てることができる値を返すので、
future.return(value)
、彼は再開できfuture
を待って指示する最初の方法、それはまた、非常に便利です。
future.throw(error)
も明示的に指定したエラーでブロック行をスローします。
javascriptで同期させることは少し気になるかもしれませんが、時には便利です。 では、Meteor.method
で非同期呼び出しを連鎖させ、その結果をクライアントに返す場合には非常に便利です。 Promises
も使用できます。これは現在Meteor
で完全にサポートされています。私は両方を使用していますし、うまくいきます。
簡単な例:
Meteor.methods({
foo: function() {
const future = new Future();
someAsyncCall(foo, function bar(error, result) {
if (error) future.throw(error);
future.return(result);
});
// Execution is paused until callback arrives
const ret = future.wait(); // Wait on future not Future
return ret;
}
});
それは、すべてのコールバックとの約束についてです。非同期コードを同期して実行することができます。 – Molda