私は自分のオブザーバブルをすぐに、また毎秒発射します。 interval
はすぐには起動しません。 この質問 が見つかりました。これはstartWith
の使用を示唆しており、すぐに起動しますが、重複する最初のエントリを取得します。
Rx.Observable.interval(1000).take(4).startWith(0).subscribe(onNext);
https://plnkr.co/edit/Cl5DQ7znJRDe0VTv0Ux5?p=preview
最初のエントリを複製せずに、すぐに間隔を空ける方法はありますか?
Observable.timer(0、1000)はすぐに開始されます。
for
RxJs 6
interval(100).pipe(startWith(0)).subscribe(() => { //your code });
Rxjsで5.5.6
import {interval} from 'rxjs/observable/interval';
import 'rxjs/add/operator/startWith';
interval(100).startWith(0).subscribe(() => {
//your code
});
またはタイマー付き:
import {timer} from 'rxjs/observable/timer';
timer(0, 100).subscribe(() => {
});
RxJava2では、重複した最初のエントリに問題はなく、このコードは正常に機能しています。
io.reactivex.Observable.interval(1, TimeUnit.SECONDS)
.startWith(0L)
.subscribe(aLong -> {
Log.d(TAG, "test"); // do whatever you want
});
StartWithでLong
を渡す必要があるので、0L
。