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

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

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

Observable.defaultIfEmpty介绍

[英]Returns an Observable that emits the items emitted by the source Observable or a specified default item if the source Observable is empty.

Scheduler: defaultIfEmpty does not operate by default on a particular Scheduler.
[中]返回一个Observable,该Observable发出源Observable发出的项,如果源Observable为空,则返回指定的默认项。
调度程序:默认情况下,defaultIfEmpty不会在特定调度程序上运行。

代码示例

代码示例来源:origin: apache/usergrid

  1. private void advance(){
  2. //map to our old results objects, return a default empty if required
  3. final Observable<Results>
  4. observable = buildNewResultsPage( cursor ).map( resultsPage -> createResultsInternal( resultsPage ) ).defaultIfEmpty(
  5. new Results() );
  6. if (logger.isTraceEnabled()) {
  7. logger.trace("Trying to load results page");
  8. }
  9. //take the first from our observable
  10. final Results resultsPage = observable.take(1).toBlocking().first();
  11. if (logger.isTraceEnabled()) {
  12. logger.trace("Results page loaded {}", resultsPage);
  13. }
  14. //set the results for the iterator
  15. this.results = resultsPage;
  16. //set the complete flag
  17. this.complete = !resultsPage.hasCursor();
  18. //if not comlete, set our cursor for the next iteration
  19. if(!complete){
  20. this.cursor = Optional.of( results.getCursor());
  21. }else{
  22. this.cursor = Optional.absent();
  23. }
  24. }

代码示例来源:origin: ReactiveX/RxNetty

  1. @Override
  2. public Void call() throws Exception {
  3. PooledConnection<String, String> connection =
  4. preferCurrentELHolderRule.holder.pollThisEventLoopConnections()
  5. .defaultIfEmpty(null)
  6. .toBlocking().single();
  7. assertThat("Connection available in the eventloop.", connection, is(connection1));
  8. return null;
  9. }
  10. }).get(1, TimeUnit.MINUTES);

代码示例来源:origin: ReactiveX/RxNetty

  1. @Override
  2. public Void call() throws Exception {
  3. PooledConnection<String, String> connection = preferCurrentELHolderRule.holder.poll()
  4. .defaultIfEmpty(null)
  5. .toBlocking()
  6. .single();
  7. assertThat("Connection available in the eventloop.", connection, is(connection1));
  8. return null;
  9. }
  10. }).get(1, TimeUnit.MINUTES);

代码示例来源:origin: ReactiveX/RxNetty

  1. @Test(timeout = 60000)
  2. public void testPeek() throws Exception {
  3. PooledConnection<String, String> connection1 = preferCurrentELHolderRule.addConnection();
  4. PooledConnection<String, String> connection = preferCurrentELHolderRule.holder.peek()
  5. .defaultIfEmpty(null)
  6. .toBlocking().single();
  7. assertThat("Connection not available with peek.", connection, is(connection1));
  8. connection = preferCurrentELHolderRule.holder.peek().defaultIfEmpty(null)
  9. .toBlocking().single();
  10. assertThat("Connection not available after peek.", connection, not(nullValue()));
  11. assertThat("Unexpected connection on peek.", connection, is(connection1));
  12. }

代码示例来源:origin: ReactiveX/RxNetty

  1. @Test(timeout = 60000)
  2. public void testPollRemovesItem() throws Exception {
  3. PooledConnection<String, String> connection1 = preferCurrentELHolderRule.addConnection();
  4. PooledConnection<String, String> connection = preferCurrentELHolderRule.holder.poll()
  5. .defaultIfEmpty(null)
  6. .toBlocking().single();
  7. assertThat("Connection not available with poll.", connection, is(connection1));
  8. connection = preferCurrentELHolderRule.holder.poll()
  9. .defaultIfEmpty(null)
  10. .toBlocking().single();
  11. assertThat("Connection available after poll.", connection, is(nullValue()));
  12. }

代码示例来源:origin: ReactiveX/RxNetty

  1. @Test(timeout = 60000)
  2. public void testRemove() throws Exception {
  3. PooledConnection<String, String> connection1 = preferCurrentELHolderRule.addConnection();
  4. PooledConnection<String, String> connection = preferCurrentELHolderRule.holder.peek()
  5. .defaultIfEmpty(null)
  6. .toBlocking().single();
  7. assertThat("Connection not available with peek.", connection, is(connection1));
  8. preferCurrentELHolderRule.holder.remove(connection1);
  9. connection = preferCurrentELHolderRule.holder.peek().defaultIfEmpty(null).toBlocking().single();
  10. assertThat("Connection not removed.", connection, is(nullValue()));
  11. }

代码示例来源:origin: ReactiveX/RxNetty

  1. private PooledConnection<String, String> _testRelease() throws Exception {
  2. final Connection<String, String> connection = pooledFactoryRule.getAConnection();
  3. pooledFactoryRule.assertNoIdleConnection();
  4. /* Close will release */
  5. pooledFactoryRule.closeAndAwait(connection); /*Throw error or close quietly*/
  6. PooledConnection<String, String> connIdle =
  7. pooledFactoryRule.holder.peek().defaultIfEmpty(null).toBlocking().single();
  8. assertThat("Release did not add to idle.", connIdle, not(nullValue()));
  9. return connIdle;
  10. }

代码示例来源:origin: ReactiveX/RxNetty

  1. @Test(timeout = 60000)
  2. public void testPollOutOfEventloop() throws Exception {
  3. PooledConnection<String, String> connection1 = preferCurrentELHolderRule.addConnection();
  4. PooledConnection<String, String> connection = preferCurrentELHolderRule.holder.poll()
  5. .defaultIfEmpty(null).toBlocking()
  6. .single();
  7. assertThat("Unexpected connection.", connection, is(connection1));
  8. }

代码示例来源:origin: apache/usergrid

  1. } )
  2. .defaultIfEmpty( 0 );

代码示例来源:origin: apache/usergrid

  1. } ).count().defaultIfEmpty( 0 ).toBlocking().last();

代码示例来源:origin: ribot/ribot-app-android

  1. public void loadVenues() {
  2. getMvpView().showVenuesProgress(true);
  3. mSubscriptions.add(Observable.combineLatest(
  4. getTodayLatestCheckInAtVenue().defaultIfEmpty(null), mDataManager.getVenues(),
  5. new Func2<CheckIn, List<Venue>, VenuesInfo>() {
  6. @Override
  7. public VenuesInfo call(CheckIn checkIn, List<Venue> venues) {
  8. return new VenuesInfo(checkIn, venues);
  9. }
  10. })
  11. .observeOn(AndroidSchedulers.mainThread())
  12. .subscribeOn(Schedulers.io())
  13. .subscribe(new Subscriber<VenuesInfo>() {
  14. @Override
  15. public void onCompleted() {
  16. }
  17. @Override
  18. public void onError(Throwable e) {
  19. Timber.e("Error loading venues " + e);
  20. getMvpView().showVenuesProgress(false);
  21. }
  22. @Override
  23. public void onNext(VenuesInfo venuesInfo) {
  24. getMvpView().showVenues(
  25. venuesInfo.listVenues,
  26. venuesInfo.getTodayLatestCheckInAtVenueId());
  27. getMvpView().showVenuesProgress(false);
  28. }
  29. }));
  30. }

代码示例来源:origin: henrymorgen/android-advanced-light

  1. private void defaultIfEmpty() {
  2. Observable.create(new Observable.OnSubscribe<Integer>() {
  3. @Override
  4. public void call(Subscriber<? super Integer> subscriber) {
  5. subscriber.onCompleted();
  6. }
  7. }).defaultIfEmpty(3).subscribe(new Action1<Integer>() {
  8. @Override
  9. public void call(Integer integer) {
  10. Log.d(TAG, "defaultIfEmpty:"+integer);
  11. }
  12. });
  13. }

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

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

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

  1. public <E extends RealmObject> Observable<Long> count(RealmQuery<E> query) {
  2. return Observable.just(query.count())
  3. .flatMap(count -> Observable.just(count)
  4. .unsubscribeOn(RealmSchedulers.getScheduler()))
  5. .defaultIfEmpty(0L);
  6. }

代码示例来源:origin: org.hawkular.metrics/hawkular-metrics-core-service

  1. @Override
  2. public Observable<Map<String, String>> getMetricTags(MetricId<?> id) {
  3. return dataAccess.getMetricTags(id)
  4. .take(1)
  5. .map(row -> row.getMap(0, String.class, String.class))
  6. .defaultIfEmpty(new HashMap<>());
  7. }

代码示例来源:origin: hawkular/hawkular-metrics

  1. @Override
  2. public Observable<Map<String, String>> getMetricTags(MetricId<?> id) {
  3. return dataAccess.getMetricTags(id)
  4. .take(1)
  5. .map(row -> row.getMap(0, String.class, String.class))
  6. .defaultIfEmpty(new HashMap<>());
  7. }

代码示例来源:origin: uk.os.search/search

  1. public Observable<List<SearchResult>> query(String searchTerm) {
  2. List<Observable<ServerResponse>> responses = queryProviders(searchTerm);
  3. return Transform.toSearchResults(responses).map(deduplicate()).defaultIfEmpty(new ArrayList<SearchResult>());
  4. }

代码示例来源:origin: uk.os.search/search

  1. public Observable<List<SearchResult>> query(String searchTerm, double lat, double lon) {
  2. List<Observable<ServerResponse>> responses = queryProviders(searchTerm);
  3. responses.addAll(queryProviders(lat, lon));
  4. return Transform.toSearchResults(responses).map(deduplicate()).defaultIfEmpty(new ArrayList<SearchResult>());
  5. }

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

  1. public <E extends RealmObject> Observable<E> findFirst(RealmQuery<E> query) {
  2. return Observable.just(query.findFirst())
  3. .filter(realmObject -> realmObject != null)
  4. .flatMap(realmObject -> realmObject.<E>asObservable().unsubscribeOn(
  5. RealmSchedulers.getScheduler()))
  6. .flatMap(realmObject -> copyFromRealm(realmObject))
  7. .defaultIfEmpty(null);
  8. }

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

  1. public <E extends RealmObject> Observable<List<E>> findAsList(RealmQuery<E> query) {
  2. return Observable.just(query.findAll())
  3. .filter(realmObject -> realmObject != null)
  4. .flatMap(realmObject -> realmObject.<E>asObservable().unsubscribeOn(
  5. RealmSchedulers.getScheduler()))
  6. .flatMap(realmObject -> copyFromRealm(realmObject))
  7. .defaultIfEmpty(null);
  8. }

相关文章

Observable类方法