Я новичок в rxjava2.Когда я прочитал об этом книгу, у меня есть кое-что, чего я не понимаю о задержке оператора.
Мы можем отложить выбросы с помощью оператора delay ().Он будет удерживать любые полученные выбросы и задерживать каждое из них на указанный период времени.Если бы мы хотели задержать выбросы на три секунды, мы могли бы сделать это следующим образом:
public static void main(String[] args) {
Observable.just("Alpha", "Beta", "Gamma" ,"Delta",
"Epsilon")
.delay(3000, TimeUnit.SECONDS)
.subscribe(s -> System.out.println("Received: " + s));
sleep(3000);
}
public static void sleep(long millis) {
try {
Thread.sleep(millis);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Вывод предыдущего фрагмента кода выглядит следующим образом: Beta Alpha Gamma Delta Epsilon
Я думаю, что вывод только «Альфа», потому что они сказали
Поскольку delay () работает на другом планировщике (таком как Observable.interval ()), нам нужно использовать sleep ()способ сохранить приложение достаточно долго, чтобы увидеть это.Каждое излучение будет задержано на три секунды
с задержкой 3 с, я думаю, что есть излучение как "Альфа", но оно излучает все излучения в наблюдаемых.