繁体   English   中英

FutureCallback到可观察的

[英]FutureCallback to Observable

有没有办法从FutureCallback创建Observable? 我看到Observable.create已被弃用,而不是这样做的正确方法(如下)。

我正在转换

Observable.create(new Observable.OnSubscribe<HttpResponse>() {
        @Override
        public void call(Subscriber<? super HttpResponse> subscriber) {
            getClient().execute(httpRequest, new FutureCallback<HttpResponse>() {
                @Override
                public void completed(HttpResponse response) {
                    subscriber.onNext(response);
                    subscriber.onCompleted();
                }
                @Override
                public void failed(Exception ex) {
                    subscriber.onError(ex);
                }
                @Override
                public void cancelled() {
                    subscriber.onError(new Exception());
                }
            });
        }
})

使用其他create 重载

Observable.<Event>create(emitter -> {
    Callback listener = new Callback() {
        @Override
        public void onEvent(Event e) {
            emitter.onNext(e);
            if (e.isLast()) {
                emitter.onCompleted();
            }
        }

        @Override
        public void onFailure(Exception e) {
            emitter.onError(e);
        }
    };

    AutoCloseable c = api.someMethod(listener);

    emitter.setCancellation(c::close);

}, BackpressureMode.BUFFER);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM