如何在RxJava中创建一个从不同位置完成的对象(未来),但我想将一个observable返回给某个客户端?
class DeferredAction {
private final CompletableFuture<String> future;
private final Observable<String> observable;
public DeferredAction() {
future = new CompletableFuture<>();
observable = Observable.from(future);
}
public Observable<String> observe() {
return observable;
}
public void complete(Stirng value) {
future.complete(value);
}
}
这是正确的方法吗? 第二个问题:如何在该可观察量上获得多个订阅者?目前我看到只有一个用户工作。
答案 0 :(得分:2)
虽然你应该知道PublishSubject
既是Observable又是Observer,所以你应该这样做:
PublishSubject<String> subject = PublishSubject.create();
subject.take(10).subscribe(sub1);
subject.last().subscribe(sub2);
subject.onNext("boo");
subject.onCompleted();
如您所见,此模式还支持多个订阅者。