私はVert.xで初心者です。私はそれを呼び出すとVert.xでカスタム非同期操作を実装するにはどうすればよいですか?
例えば、JDBCClient
が非ブロック方式
JDBCClient.getConnection(Handler<AsyncResult<SQLConnection>> handler)
を持って、それが本当に非同期です。
jdbcClient.getConnection(result -> { /* this code will execute asynchonous */})
しかし、ノンブロッキング方式で独自のコンポーネントを実装するにはどうすればよいですか?
これを例として書きますと、非同期に見えません。メソッド本体を実行し、渡されたラムダを呼び出します。
class MyComponent {
public void getSomething(Handler<AsyncResult<String>> handler) {
String result = someHeavyMethodInThisThread();
handler.handle(Future.succeededFuture(result));
}
}
/* later */
/* this code will be blocking, right? */
myComponent.getSomething(res -> { /* ... */ })
私のメソッドが非同期であるべきことをVert.xに伝える方法がありますか?注釈やその他のものはありますか?
:RxJavaそれがどのように機能するかを理解する。そして、Verticlesを試してみてください... –