创建能够接受参数的Observable
的正确方法是什么?
例如,我可以参数化http请求
答案 0 :(得分:7)
您可以使用Observable.create
:
public static Observable<String> createMyObservable(final String all, final Integer my, final Boolean parameters) {
return new Observable.create(new Observable.OnSubscribe<String>(){
@Override
public void call(Subscriber<? super String> subscriber) {
// here you have access to all the parameters you passed in and can use them to control the emission of items:
subscriber.onNext(all);
if (parameters) {
subscriber.onError(...);
} else {
subscriber.onNext(my.toString());
subscriber.onCompleted();
}
}
});
}
请注意,所有参数必须声明为final或代码不会编译。
如果您希望输入参数随时间变化,它们本身可能是Observable,您可以使用combineLatest
或zip
将其值与其他可观察值组合,或者可能{{1} }或map
根据输入Observables的值创建新的Observable。