io.reactivex.Single.flatMap()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(7.7k)|赞(0)|评价(0)|浏览(241)

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

Single.flatMap介绍

[英]Returns a Single that is based on applying a specified function to the item emitted by the source Single, where that function returns a SingleSource.

Scheduler: flatMap does not operate by default on a particular Scheduler.
[中]返回一个基于将指定函数应用于源Single发出的项的Single,其中该函数返回SingleSource。
调度程序:默认情况下,flatMap不会在特定调度程序上运行。

代码示例

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

@Override
  public SingleSource<Object> apply(Single<Object> s)
      throws Exception {
    return s.flatMap(new Function<Object, SingleSource<? extends Object>>() {
      @Override
      public SingleSource<? extends Object> apply(Object v)
          throws Exception {
        return Single.just(v);
      }
    });
  }
});

代码示例来源:origin: Polidea/RxAndroidBle

@Override
public Single<byte[]> readCharacteristic(@NonNull UUID characteristicUuid) {
  return getCharacteristic(characteristicUuid)
      .flatMap(new Function<BluetoothGattCharacteristic, SingleSource<? extends byte[]>>() {
        @Override
        public SingleSource<? extends byte[]> apply(BluetoothGattCharacteristic characteristic) {
          return readCharacteristic(characteristic);
        }
      });
}

代码示例来源:origin: Polidea/RxAndroidBle

@Override
public LongWriteOperationBuilder setCharacteristicUuid(@NonNull final UUID uuid) {
  bluetoothGattCharacteristicObservable = discoverServices().flatMap(
      new Function<RxBleDeviceServices, SingleSource<BluetoothGattCharacteristic>>() {
        @Override
        public SingleSource<BluetoothGattCharacteristic> apply(RxBleDeviceServices rxBleDeviceServices) {
          return rxBleDeviceServices.getCharacteristic(uuid);
        }
      }
  );
  return this;
}

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

@Test(expected = NullPointerException.class)
public void flatMapNull() {
  just1.flatMap(null);
}

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

@Test(expected = NullPointerException.class)
public void flatMapNull() {
  Single.just(1)
    .flatMap(null);
}

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

@Test(expected = NullPointerException.class)
public void flatMapFunctionReturnsNull() {
  just1.flatMap(new Function<Integer, Single<Object>>() {
    @Override
    public Single<Object> apply(Integer v) {
      return null;
    }
  }).blockingGet();
}

代码示例来源:origin: pockethub/PocketHub

@Override
protected Single<List<Repository>> loadData(boolean forceRefresh) {
  User org = this.org.get();
  if (org == null) {
    return Single.just(Collections.emptyList());
  }
  return Single.fromCallable(() -> cache.getRepos(org, forceRefresh))
      .flatMap(repos -> Observable.fromIterable(repos)
          .sorted(recentRepos)
          .toList());
}

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

@Test
public void flatMapError() {
  RuntimeException exception = new RuntimeException("test");
  Single.error(exception).flatMap(new Function<Object, SingleSource<Object>>() {
    @Override public SingleSource<Object> apply(final Object integer) throws Exception {
      return Single.just(new Object());
    }
  })
    .test()
    .assertError(exception);
}

代码示例来源:origin: pockethub/PocketHub

@Override
protected Single<List<IssueFilter>> loadData(boolean forceRefresh) {
  return Single.fromCallable(() -> new ArrayList<>(cache.getIssueFilters()))
      .flatMap(filters -> Observable.fromIterable(filters)
          .sorted(FilterListFragment.this)
          .toList());
}

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

@Test
public void dispose() {
  TestHelper.checkDisposed(Single.just(1).flatMap(new Function<Integer, SingleSource<Integer>>() {
    @Override
    public SingleSource<Integer> apply(Integer v) throws Exception {
      return Single.just(2);
    }
  }));
}

代码示例来源:origin: pockethub/PocketHub

/**
 * Refresh the fragment's list.
 */
protected void refresh(boolean force) {
  if (!isAdded() || isLoading) {
    return;
  }
  if (dataLoadDisposable != null && !dataLoadDisposable.isDisposed()) {
    dataLoadDisposable.dispose();
  }
  isLoading = true;
  dataLoadDisposable = loadData(force)
      .flatMap(items -> Observable.fromIterable(items)
          .map(this::createItem)
          .toList())
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .as(AutoDisposeUtils.bindToLifecycle(this))
      .subscribe(this::onDataLoaded, this::onDataLoadError);
}

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

@Test
public void mappedSingleOnError() {
  Single.just(1).flatMap(new Function<Integer, SingleSource<Integer>>() {
    @Override
    public SingleSource<Integer> apply(Integer v) throws Exception {
      return Single.error(new TestException());
    }
  })
  .test()
  .assertFailure(TestException.class);
}

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

@Test
public void flatMapValue() {
  Single.just(1).flatMap(new Function<Integer, SingleSource<Integer>>() {
    @Override public SingleSource<Integer> apply(final Integer integer) throws Exception {
      if (integer == 1) {
        return Single.just(2);
      }
      return Single.just(1);
    }
  })
    .test()
    .assertResult(2);
}

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

@Test
public void flatMapValueDifferentType() {
  Single.just(1).flatMap(new Function<Integer, SingleSource<String>>() {
    @Override public SingleSource<String> apply(final Integer integer) throws Exception {
      if (integer == 1) {
        return Single.just("2");
      }
      return Single.just("1");
    }
  })
    .test()
    .assertResult("2");
}

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

@Test
public void flatMapValueErrorThrown() {
  Single.just(1).flatMap(new Function<Integer, SingleSource<Integer>>() {
    @Override public SingleSource<Integer> apply(final Integer integer) throws Exception {
      throw new RuntimeException("something went terribly wrong!");
    }
  })
    .test()
    .assertNoValues()
    .assertError(RuntimeException.class)
    .assertErrorMessage("something went terribly wrong!");
}

代码示例来源:origin: line/armeria

private static Single<String> nestSingle(String input) {
  RequestContext.current();
  return single(input).flatMap(RequestContextAssemblyTest::single);
}

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

@Test
public void singleSingle() throws Exception {
  List<Throwable> errors = TestHelper.trackPluginErrors();
  try {
    TestObserver<Integer> to = Single.just(1)
    .subscribeOn(Schedulers.io())
    .flatMap(new Function<Integer, Single<Integer>>() {
      @Override
      public Single<Integer> apply(Integer v) throws Exception {
        sleep();
        return Single.<Integer>error(new TestException());
      }
    })
    .test();
    cb.await();
    beforeCancelSleep(to);
    to.cancel();
    Thread.sleep(SLEEP_AFTER_CANCEL);
    to.assertEmpty();
    assertTrue(errors.toString(), errors.isEmpty());
  } finally {
    RxJavaPlugins.reset();
  }
}

代码示例来源:origin: pockethub/PocketHub

public Single<FullTree> refresh() {
  GitService gitService = ServiceGenerator.createService(context, GitService.class);
  return getBranch(reference)
      .map(branch -> branch.replace("heads/", ""))
      .flatMap(branch -> getValidRef(gitService, reference, branch))
      .flatMap(reference ->
          gitService.getGitCommit(repo.owner().login(), repo.name(),
              reference.object().sha())
              .map(Response::body)
              .zipWith(Single.just(reference), RefreshTreeModel::new))
      .flatMap(model ->
          gitService.getGitTreeRecursive(repo.owner().login(),
              repo.name(), model.getCommit().tree().sha())
              .map(Response::body)
              .zipWith(Single.just(model.ref), FullTree::new));
}

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

@Test
public void flatMapValueNull() {
  Single.just(1).flatMap(new Function<Integer, SingleSource<Integer>>() {
    @Override public SingleSource<Integer> apply(final Integer integer) throws Exception {
      return null;
    }
  })
    .test()
    .assertNoValues()
    .assertError(NullPointerException.class)
    .assertErrorMessage("The single returned by the mapper is null");
}

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

@Test
public void testFlatMap() {
  TestSubscriber<String> ts = new TestSubscriber<String>();
  Single.just("Hello").flatMap(new Function<String, Single<String>>() {
    @Override
    public Single<String> apply(String s) {
      return Single.just(s + " World!").subscribeOn(Schedulers.computation());
    }
  }
  ).toFlowable().subscribe(ts);
  if (!ts.awaitTerminalEvent(5, TimeUnit.SECONDS)) {
    ts.cancel();
    Assert.fail("TestSubscriber timed out.");
  }
  ts.assertValueSequence(Arrays.asList("Hello World!"));
}

相关文章

微信公众号

最新文章

更多