問題タブ [executioncontext]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - メソッドを強制的に `ExecutionContext` で実行するには?
特定の内部のみからメソッドを実行するにはどうすればよいExecutionContextですか?
たとえば、次のコードを検討してください。
addこのコードは、メソッドとメソッドsubtractが同じスレッドからのみ呼び出される場合にのみ正しいです。これらのメソッドが常に特定のものを使用するようにする方法は何ExecutionContextですか? 簡単な方法はありますか?
質問を理解するために、いくつかの回答例を次に示します。
Answer1Future.apply : 次のように、すべてのメソッドの本体を でラップします。
回答 2 : アクターを使用し、akkaすべてのメソッドを着信アクター メッセージに変換し、ask パターンを使用してアクターを操作します。意図的に混乱させなければ、すべてのメソッドはアクターの EC から実行されます。
回答 3 : 特性を Future 化されたバージョンに変換するマクロ関数を作成することはできますか? このコードを展開するように:
これに:
ここで、 Answer1は一般的には問題ないと思いますが、エラーが発生しやすく、ボイラープレートが少しあります。Answer2では、ボイラープレート コードを記述する必要があり、関数の引数を含むケース クラスを作成する必要があり、akka が必要です。そして、実装Answer3は見当たりませんでした。
だから...それを行う簡単な方法はありますか?