मैं एक ही उत्पादन हो रही है जब बनाम Observable.from Observable.just का उपयोग कर निम्नलिखित मामले में:RxJava - बस बनाम
public void myfunc() {
//swap out just for from here and i get the same results,why ?
Observable.just(1,2,3).subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
Log.d("","all done. oncompleted called");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Integer integer) {
Log.d("","here is my integer:"+integer.intValue());
}
});
}
मैं बस गया था 'बस' लगता है सोचा एक आइटम फेंकना और 'से' किसी प्रकार की सूची में वस्तुओं को उत्सर्जित करना था। क्या फर्क पड़ता है ? मैंने यह भी ध्यान दिया कि 'बस' और 'से' केवल सीमित मात्रा में तर्क लेते हैं। तो Observable.just (1,2,3,4,5,6,7,8, -1, -2) ठीक है लेकिन Observable.just (1,2,3,4,5,6,7,8, -1, -2, -3) विफल रहता है। वही है, मुझे इसे एक सूची या सरणी में लपेटना है। मैं सिर्फ उत्सुक हूं कि वे असीमित तर्कों को परिभाषित क्यों नहीं कर सकते हैं।
अपडेट: मैंने प्रयोग किया और देखा कि 'बस' एक सरणी संरचना नहीं लेता है, यह 'बस' तर्क लेता है। 'से' संग्रह लेता है। तो 'से' के लिए निम्नलिखित काम करता है लेकिन 'बस' के लिए नहीं:
public Observable myfunc() {
Integer[] myints = {1,2,3,4,5,6,7,8,-1,-2,9,10,11,12,13,14,15};
return Observable.just(myints).flatMap(new Func1<Integer, Observable<Boolean>>() {
@Override
public Observable<Boolean> call(final Integer integer) {
return Observable.create(new Observable.OnSubscribe<Boolean>() {
@Override
public void call(Subscriber<? super Boolean> subscriber) {
if(integer.intValue()>2){
subscriber.onNext(integer.intValue()>2);
}
}
});
}
});
}
मैं इसे स्पष्ट अंतर मानता हूं, सही? एक List
-
Observable.just(someList)
आप 1 उत्सर्जन दे देंगे:
इससे 45 मिनट भ्रम की मदद मिली। धन्यवाद! – Josh