rx.Observable.first()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(8.5k)|赞(0)|评价(0)|浏览(214)

本文整理了Java中rx.Observable.first()方法的一些代码示例,展示了Observable.first()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Observable.first()方法的具体详情如下:
包路径:rx.Observable
类名称:Observable
方法名:first

Observable.first介绍

[英]Returns an Observable that emits only the very first item emitted by the source Observable, or notifies of an NoSuchElementException if the source Observable is empty.

Scheduler: first does not operate by default on a particular Scheduler.
[中]返回一个Observable,该Observable只发出源Observable发出的第一个项,或者如果源Observable为空,则通知NoSuchElementException。
调度器:第一个默认情况下不会在特定的调度器上运行。

代码示例

代码示例来源:origin: jaydenxiao2016/AndroidFire

  1. } else {
  2. return Observable.concat(fromCache, fromNetwork).first();

代码示例来源:origin: THEONE10211024/RxJavaSamples

  1. @OnClick(R.id.btn_start_pseudo_cache)
  2. public void onDemoPseudoCacheClicked() {
  3. _adapter = new ArrayAdapter<>(getActivity(),
  4. R.layout.item_log,
  5. R.id.item_log,
  6. new ArrayList<String>());
  7. _resultList.setAdapter(_adapter);
  8. _initializeCache();
  9. Observable.concat(_getCachedData(), _getFreshData())
  10. .first()
  11. .observeOn(AndroidSchedulers.mainThread())
  12. .subscribe(new Subscriber<Contributor>() {
  13. @Override
  14. public void onCompleted() {
  15. Timber.d("done loading all data");
  16. }
  17. @Override
  18. public void onError(Throwable e) {
  19. Timber.e(e, "arr something went wrong");
  20. }
  21. @Override
  22. public void onNext(Contributor contributor) {
  23. _contributionMap.put(contributor.login, contributor.contributions);
  24. _adapter.clear();
  25. _adapter.addAll(getListStringFromMap());
  26. }
  27. });
  28. }

代码示例来源:origin: com.netflix.eureka/eureka2-test-utils

  1. /**
  2. * Return {@link RxItem} that will give first value of the provided observable or will
  3. * time out. The timeout is measured from the time this method is called.
  4. */
  5. public static <T> RxItem<T> firstFrom(long timeout, TimeUnit timeUnit, final Observable<T> observable) {
  6. return new SingleValueRxItem<T>(TimeUnit.MILLISECONDS.convert(timeout, timeUnit), observable.first());
  7. }

代码示例来源:origin: com.netflix.eureka2/eureka-test-utils

  1. /**
  2. * Return {@link RxItem} that will give first value of the provided observable or will
  3. * time out. The timeout is measured from the time this method is called.
  4. */
  5. public static <T> RxItem<T> firstFrom(long timeout, TimeUnit timeUnit, final Observable<T> observable) {
  6. return new SingleValueRxItem<T>(TimeUnit.MILLISECONDS.convert(timeout, timeUnit), observable.first());
  7. }

代码示例来源:origin: com.netflix.eureka2/eureka-test-utils

  1. /**
  2. * Return {@link RxItem} that will give list of first values of the provided observables or will
  3. * time out. The timeout is measured from the time this method is called.
  4. */
  5. public static <T> RxItem<List<T>> firstFromEach(long timeout, TimeUnit timeUnit, final Observable<T>... observables) {
  6. List<Observable<T>> firstItems = new ArrayList<Observable<T>>(observables.length);
  7. for (Observable<T> o : observables) {
  8. firstItems.add(o.first());
  9. }
  10. return new ListRxItem<T>(TimeUnit.MILLISECONDS.convert(timeout, timeUnit), firstItems);
  11. }

代码示例来源:origin: leeowenowen/rxjava-examples

  1. @Override
  2. public void run() {
  3. Observable.range(1, 10).first().subscribe(new Action1<Integer>() {
  4. @Override
  5. public void call(Integer integer) {
  6. log(integer);
  7. }
  8. });
  9. }
  10. });

代码示例来源:origin: com.netflix.rxjava/rxjava-core

  1. /**
  2. * Returns the first item emitted by this {@code BlockingObservable}, or throws
  3. * {@code NoSuchElementException} if it emits no items.
  4. *
  5. * @return the first item emitted by this {@code BlockingObservable}
  6. * @throws NoSuchElementException
  7. * if this {@code BlockingObservable} emits no items
  8. * @see <a href="https://github.com/ReactiveX/RxJava/wiki/Blocking-Observable-Operators#first-and-firstordefault">RxJava Wiki: first()</a>
  9. * @see <a href="http://msdn.microsoft.com/en-us/library/hh229177.aspx">MSDN: Observable.First</a>
  10. */
  11. public T first() {
  12. return blockForSingle(o.first());
  13. }

代码示例来源:origin: com.netflix.eureka/eureka2-test-utils

  1. /**
  2. * Return {@link RxItem} that will give list of first values of the provided observables or will
  3. * time out. The timeout is measured from the time this method is called.
  4. */
  5. public static <T> RxItem<List<T>> firstFromEach(long timeout, TimeUnit timeUnit, final Observable<T>... observables) {
  6. List<Observable<T>> firstItems = new ArrayList<Observable<T>>(observables.length);
  7. for (Observable<T> o : observables) {
  8. firstItems.add(o.first());
  9. }
  10. return new ListRxItem<T>(TimeUnit.MILLISECONDS.convert(timeout, timeUnit), firstItems);
  11. }

代码示例来源:origin: MaksTuev/ferro

  1. /**
  2. * @return book with bookId
  3. */
  4. public Observable<Book> getBook(String bookId) {
  5. return Observable.timer(3, TimeUnit.SECONDS)
  6. .flatMap(t -> Observable.from(books))
  7. .filter(book -> book.getId().equals(bookId))
  8. .first();
  9. }

代码示例来源:origin: jacek-marchwicki/JavaWebsocketClient

  1. @Nonnull
  2. public Observable<DataMessage> sendMessageOnceWhenConnected(final Func1<String, Observable<Object>> createMessage) {
  3. return connectedAndRegistered
  4. .compose(isConnected())
  5. .first()
  6. .flatMap(new Func1<RxObjectEventConn, Observable<DataMessage>>() {
  7. @Override
  8. public Observable<DataMessage> call(final RxObjectEventConn rxEventConn) {
  9. return requestData(rxEventConn, createMessage);
  10. }
  11. });
  12. }

代码示例来源:origin: NimbleDroid/FriendlyDemo

  1. @NonNull
  2. private Observable<List<Post>> getPostsFromDB() {
  3. return db.get().createQuery(TABLE_NAME, Post.SELECT_ALL)
  4. .mapToList(Post.MAPPER::map)
  5. .first();
  6. }

代码示例来源:origin: Aptoide/aptoide-client-v8

  1. public Single<Notification> getLastShowed(Integer[] notificationType) {
  2. return getAllSorted(Sort.DESCENDING, notificationType).first()
  3. .map(notifications -> {
  4. for (Notification notification : notifications) {
  5. if (!notification.isDismissed()) {
  6. return notification;
  7. }
  8. }
  9. return null;
  10. })
  11. .toSingle();
  12. }

代码示例来源:origin: hantsy/spring-reactive-sample

  1. Single<Post> findById(Long id) {
  2. return this.db.select("select * from posts where id=?")
  3. .parameter(id)
  4. .get(
  5. rs -> new Post(rs.getLong("id"),
  6. rs.getString("title"),
  7. rs.getString("content")
  8. )
  9. )
  10. .first()
  11. .toSingle();
  12. }

代码示例来源:origin: bravekingzhang/CleanArch

  1. @Override
  2. public Observable<List<SampleModel>> lists(int count, int page) {
  3. Realm realm = Realm.getDefaultInstance();
  4. Observable observable = realm.where(SampleModel.class).findAll().asObservable().map(new Func1<RealmResults<SampleModel>, List<SampleModel>>() {
  5. @Override
  6. public List<SampleModel> call(RealmResults<SampleModel> sampleModels) {
  7. return Converter.RealmResultList2SampleModel(sampleModels);
  8. }
  9. });
  10. return observable.first();
  11. }
  12. //realm maybe have some bugs....,fuck

代码示例来源:origin: ArturVasilov/AndroidSchool

  1. @Test
  2. public void testSimpleObservable() throws Exception {
  3. Observable.just(5, 6, 7)
  4. .reduce((integer, integer2) -> integer + integer2)
  5. .first()
  6. .subscribe(integer -> assertEquals(18, integer.intValue()));
  7. }

代码示例来源:origin: Aptoide/aptoide-client-v8

  1. @Override public Completable removeDownload(String md5) {
  2. return downloadsRepository.getDownload(md5)
  3. .first()
  4. .flatMap(download -> getAppDownloader(download.getMd5()).flatMap(
  5. appDownloader -> appDownloader.removeAppDownload()
  6. .andThen(downloadsRepository.remove(md5))
  7. .andThen(Observable.just(download))))
  8. .doOnNext(download -> removeDownloadFiles(download))
  9. .toCompletable();
  10. }

代码示例来源:origin: Aptoide/aptoide-client-v8

  1. @Override public Completable pauseDownload(String md5) {
  2. return downloadsRepository.getDownload(md5)
  3. .first()
  4. .map(download -> {
  5. download.setOverallDownloadStatus(Download.PAUSED);
  6. downloadsRepository.save(download);
  7. return download;
  8. })
  9. .flatMap(download -> getAppDownloader(download.getMd5()))
  10. .flatMapCompletable(appDownloader -> appDownloader.pauseAppDownload())
  11. .toCompletable();
  12. }

代码示例来源:origin: nurkiewicz/rxjava-book-examples

  1. @Test
  2. public void sample_161() throws Exception {
  3. Observable<Person> person = Observable.just(new Person());
  4. Observable<Income> income = person
  5. .flatMap(this::determineIncome)
  6. .flatMap(
  7. Observable::just,
  8. th -> Observable.empty(),
  9. Observable::empty)
  10. .concatWith(person.flatMap(this::guessIncome))
  11. .first();
  12. }

代码示例来源:origin: Aptoide/aptoide-client-v8

  1. private Observable<Download> handleDownloadProgress(AppDownloader appDownloader) {
  2. return appDownloader.observeDownloadProgress()
  3. .flatMap(appDownloadStatus -> downloadsRepository.getDownload(appDownloadStatus.getMd5())
  4. .first()
  5. .flatMap(download -> updateDownload(download, appDownloadStatus)))
  6. .filter(download -> download.getOverallDownloadStatus() == Download.COMPLETED)
  7. .doOnNext(download -> removeAppDownloader(download.getMd5()))
  8. .doOnNext(download -> downloadAnalytics.onDownloadComplete(download.getMd5(),
  9. download.getPackageName(), download.getVersionCode()))
  10. .takeUntil(download -> download.getOverallDownloadStatus() == Download.COMPLETED);
  11. }

代码示例来源:origin: nurkiewicz/rxjava-book-examples

  1. @Test
  2. public void sample_570() throws Exception {
  3. Observable<Car> fromCache = loadFromCache();
  4. Observable<Car> fromDb = loadFromDb();
  5. Observable<Car> found = Observable
  6. .concat(fromCache, fromDb)
  7. .first();
  8. }

相关文章

Observable类方法