2017-11-07 7 views
0

resultHandlerをオブザーバーに変換し、nullに対応していないRxJava2にサブスクライブしている次のスニペットを変換しようとしています。Vert.x RxJava2戻り値Handler <AsyncResult <Void>>

@Override 
    public WikiDatabaseService createPage(String title, String markdown, Handler<AsyncResult<Void>> resultHandler) { 
    dbClient.rxUpdateWithParams(sqlQueries.get(SqlQuery.CREATE_PAGE), new JsonArray().add(title).add(markdown)) 
     .map(res -> (Void) null) 
     .subscribe(SingleHelper.toObserver(resultHandler)); 
    return this; 
    } 

誰でもアドバイスを提供できますか? CompletableHelper.toObserver

+0

[ウィキ](https://github.com/ReactiveX/ RxJava/wiki/What's-different-in-2.0#nulls)にはこのような場合の提案があります。 – akarnokd

+0

'toObserver(resultHandler)'がVert.xの 'Handler > 'を' 'Observable.empty()'に変更している ''(Void)null'の代わりにObservable.empty RxJava2 'SingleObserver'です。 – amb85

+0

さて、 'res'を' null'にマップする必要はありません。 'resultHandler'が' null'値を渡すようにするだけです。 –

答えて

0

使用toCompletable

@Override 
public WikiDatabaseService createPage(String title, String markdown, Handler<AsyncResult<Void>> resultHandler) { 
    dbClient.rxUpdateWithParams(sqlQueries.get(SqlQuery.CREATE_PAGE), new JsonArray().add(title).add(markdown)) 
    .toCompletable() 
    .subscribe(CompletableHelper.toObserver(resultHandler)); 
    return this; 
} 

プロジェクトの依存関係がVert.x RxJava2モジュールが含まれていることを確認してください:

<dependency> 
    <groupId>io.vertx</groupId> 
    <artifactId>vertx-rx-java2</artifactId> 
</dependency> 
関連する問題