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

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

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

Observable.zip介绍

[英]Returns an Observable that emits items that are the result of applying a specified function to pairs of values, one each from the source Observable and a specified Iterable sequence.

Note that the other Iterable is evaluated as items are observed from the source Observable; it is not pre-consumed. This allows you to zip infinite streams on either side. Scheduler: zip does not operate by default on a particular Scheduler.
[中]返回一个Observable,它发出的项是将指定函数应用于成对值的结果,每个值来自源Observable和指定的Iterable序列。
请注意,另一个Iterable是从源可观察项中观察到的;它不是预先消费的。这允许你在两边压缩无限的流。调度器:默认情况下,zip不会在特定的调度器上运行。

代码示例

代码示例来源:origin: amitshekhariitbhu/Fast-Android-Networking

  1. @Override
  2. public Observable<Pair<UserDetail, User>> call(User user) {
  3. // here we get the user one by one and then we are zipping
  4. // two observable - one getUserDetailObservable (network call to get userDetail)
  5. // and another Observable.just(user) - just to emit user
  6. return Observable.zip(getUserDetailObservable(user.id), // zip to combine two observable
  7. Observable.just(user),
  8. new Func2<UserDetail, User, Pair<UserDetail, User>>() {
  9. @Override
  10. public Pair<UserDetail, User> call(UserDetail userDetail, User user) {
  11. // runs when network call completes
  12. // we get here userDetail for the corresponding user
  13. return new Pair<>(userDetail, user); // returning the pair(userDetail, user)
  14. }
  15. });
  16. }
  17. })

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

  1. public Observable<CollectionIoEvent<MvccEntity>> stageRunner( CollectionIoEvent<Entity> writeData,
  2. WriteStart writeState ) {
  3. return Observable.just( writeData ).map( writeState ).flatMap( mvccEntityCollectionIoEvent -> {
  4. Observable<CollectionIoEvent<MvccEntity>> uniqueObservable =
  5. Observable.just( mvccEntityCollectionIoEvent ).subscribeOn( rxTaskScheduler.getAsyncIOScheduler() )
  6. .doOnNext( writeVerifyUnique );
  7. // optimistic verification
  8. Observable<CollectionIoEvent<MvccEntity>> optimisticObservable =
  9. Observable.just( mvccEntityCollectionIoEvent ).subscribeOn( rxTaskScheduler.getAsyncIOScheduler() )
  10. .doOnNext( writeOptimisticVerify );
  11. final Observable<CollectionIoEvent<MvccEntity>> zip =
  12. Observable.zip( uniqueObservable, optimisticObservable, ( unique, optimistic ) -> optimistic );
  13. return zip;
  14. } );
  15. }

代码示例来源:origin: amitshekhariitbhu/Fast-Android-Networking

  1. private void findUsersWhoLovesBoth() {
  2. Observable.zip(getCricketFansObservable(), getFootballFansObservable(),
  3. new Func2<List<User>, List<User>, List<User>>() {
  4. @Override

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

  1. Observable<Integer> zipped = Observable.zip( functions, new FuncN<Integer>() {

代码示例来源:origin: jooby-project/jooby

  1. @Override
  2. public <T> Observable<List<T>> query(final N1qlQuery query) {
  3. return bucket.query(query)
  4. .flatMap(aqr -> Observable.zip(aqr.rows().toList(),
  5. aqr.errors().toList(),
  6. aqr.finalSuccess().singleOrDefault(Boolean.FALSE),
  7. (rows, errors, finalSuccess) -> {
  8. if (!finalSuccess) {
  9. throw new QueryExecutionException(
  10. "execution of query resulted in exception: ",
  11. Try.apply(() -> errors.get(0)).orElse(null));
  12. }
  13. List<T> value = new ArrayList<>();
  14. for (AsyncN1qlQueryRow row : rows) {
  15. try {
  16. T v = converter.fromBytes(row.byteValue());
  17. value.add(v);
  18. } catch (IOException ex) {
  19. throw new QueryExecutionException(
  20. "execution of query resulted in exception", null, ex);
  21. }
  22. }
  23. return value;
  24. }));
  25. }

代码示例来源:origin: hidroh/materialistic

  1. break;
  2. Observable.defer(() -> Observable.zip(
  3. mSessionManager.isViewed(itemId),
  4. mFavoriteManager.check(itemId),

代码示例来源:origin: PipelineAI/pipeline

  1. Observable<String> zipped = Observable.zip(error, cmdResult, new Func2<String, Integer, String>() {
  2. @Override
  3. public String call(String s, Integer integer) {

代码示例来源:origin: PipelineAI/pipeline

  1. Observable<Boolean> checkZippedEqual = Observable.zip(fast, slow, new Func2<HystrixUtilization, HystrixUtilization, Boolean>() {
  2. @Override
  3. public Boolean call(HystrixUtilization payload, HystrixUtilization payload2) {

代码示例来源:origin: jhusain/learnrxjava

  1. /**
  2. * Combine 2 streams into pairs using zip.
  3. *
  4. * a -> "one", "two", "red", "blue"
  5. * b -> "fish", "fish", "fish", "fish"
  6. * output -> "one fish", "two fish", "red fish", "blue fish"
  7. */
  8. public Observable<String> exerciseZip(Observable<String> a, Observable<String> b) {
  9. return Observable.zip(a, b, (x, y) -> x + " " + y);
  10. }

代码示例来源:origin: PipelineAI/pipeline

  1. Observable<Boolean> checkZippedEqual = Observable.zip(fast, slow, new Func2<HystrixConfiguration, HystrixConfiguration, Boolean>() {
  2. @Override
  3. public Boolean call(HystrixConfiguration payload, HystrixConfiguration payload2) {

代码示例来源:origin: PipelineAI/pipeline

  1. Observable<Boolean> checkZippedEqual = Observable.zip(fast, slow, new Func2<HystrixDashboardStream.DashboardData, HystrixDashboardStream.DashboardData, Boolean>() {
  2. @Override
  3. public Boolean call(HystrixDashboardStream.DashboardData payload, HystrixDashboardStream.DashboardData payload2) {

代码示例来源:origin: PipelineAI/pipeline

  1. .observeOn(Schedulers.computation());
  2. Observable<Boolean> zipped = Observable.zip(o1, o2, new Func2<HystrixCommandMetrics.HealthCounts, HystrixCommandMetrics.HealthCounts, Boolean>() {
  3. @Override
  4. public Boolean call(HystrixCommandMetrics.HealthCounts healthCounts, HystrixCommandMetrics.HealthCounts healthCounts2) {

代码示例来源:origin: itmuch/spring-cloud-docker-microservice-book-code

  1. public Observable<HashMap<String, User>> aggregateObservable(Long id) {
  2. // 合并两个或者多个Observables发射出的数据项,根据指定的函数变换它们
  3. return Observable.zip(
  4. this.aggregationService.getUserById(id),
  5. this.aggregationService.getMovieUserByUserId(id),
  6. (user, movieUser) -> {
  7. HashMap<String, User> map = Maps.newHashMap();
  8. map.put("user", user);
  9. map.put("movieUser", movieUser);
  10. return map;
  11. }
  12. );
  13. }

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

  1. @Override
  2. public Observable<Pair<User, Contributor>> call(Contributor contributor) {
  3. Observable<User> _userObservable = _api.user(contributor.login)
  4. .filter(new Func1<User, Boolean>() {
  5. @Override
  6. public Boolean call(User user) {
  7. return !isEmpty(user.name) && !isEmpty(user.email);
  8. }
  9. });
  10. return Observable.zip(_userObservable,
  11. Observable.just(contributor),
  12. new Func2<User, Contributor, Pair<User, Contributor>>() {
  13. @Override
  14. public Pair<User, Contributor> call(User user,
  15. Contributor contributor) {
  16. return new Pair<>(user, contributor);
  17. }
  18. });
  19. }
  20. })

代码示例来源:origin: jhusain/learnrxjava

  1. public static void main(String... args) {
  2. Observable<String> data = Observable.just("one", "two", "three", "four", "five");
  3. Observable.zip(data, Observable.interval(1, TimeUnit.SECONDS), (d, t) -> {
  4. return d + " " + t;
  5. }).toBlocking().forEach(System.out::println);
  6. }
  7. }

代码示例来源:origin: cn-ljb/rxjava_for_android

  1. private void getContactData() {
  2. Observable.zip(
  3. queryContactsFromLocation(),
  4. queryContactsForNet(),
  5. new Func2<List<Contacter>, List<Contacter>, List<Contacter>>() {
  6. @Override
  7. public List<Contacter> call(List<Contacter> contacters, List<Contacter> contacters2) {
  8. contacters.addAll(contacters2);
  9. return contacters;
  10. }
  11. }
  12. ).compose(this.<List<Contacter>>bindToLifecycle())
  13. .subscribeOn(Schedulers.io())
  14. .observeOn(AndroidSchedulers.mainThread())
  15. .subscribe(new Action1<List<Contacter>>() {
  16. @Override
  17. public void call(List<Contacter> contacters) {
  18. initPage(contacters);
  19. }
  20. });
  21. }

代码示例来源:origin: jhusain/learnrxjava

  1. public static void run() {
  2. Observable<Tile> searchTile = getSearchResults("search term");
  3. Observable<TileResponse> populatedTiles = searchTile.flatMap(t -> {
  4. Observable<Reviews> reviews = getSellerReviews(t.getSellerId());
  5. Observable<String> imageUrl = getProductImage(t.getProductId());
  6. return Observable.zip(reviews, imageUrl, (r, u) -> {
  7. return new TileResponse(t, r, u);
  8. });
  9. });
  10. List<TileResponse> allTiles = populatedTiles.toList()
  11. .toBlocking().single();
  12. }

代码示例来源:origin: jhusain/learnrxjava

  1. public static void main(String[] args) {
  2. final long startTime = System.currentTimeMillis();
  3. Observable<Tile> searchTile = getSearchResults("search term")
  4. .doOnSubscribe(() -> logTime("Search started ", startTime))
  5. .doOnCompleted(() -> logTime("Search completed ", startTime));
  6. Observable<TileResponse> populatedTiles = searchTile.flatMap(t -> {
  7. Observable<Reviews> reviews = getSellerReviews(t.getSellerId())
  8. .doOnCompleted(() -> logTime("getSellerReviews[" + t.id + "] completed ", startTime));
  9. Observable<String> imageUrl = getProductImage(t.getProductId())
  10. .doOnCompleted(() -> logTime("getProductImage[" + t.id + "] completed ", startTime));
  11. return Observable.zip(reviews, imageUrl, (r, u) -> {
  12. return new TileResponse(t, r, u);
  13. }).doOnCompleted(() -> logTime("zip[" + t.id + "] completed ", startTime));
  14. });
  15. List<TileResponse> allTiles = populatedTiles.toList()
  16. .doOnCompleted(() -> logTime("All Tiles Completed ", startTime))
  17. .toBlocking().single();
  18. }

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

  1. private void imitateDownloading(String bookId) {
  2. List<Integer> percents = Arrays.asList(5, 17, 33, 50, 66, 81, 92, 100);
  3. Observable.zip(
  4. Observable.interval(600, TimeUnit.MILLISECONDS),
  5. Observable.from(percents),
  6. (t, percent) -> percent)
  7. .doOnNext(percent -> updateBook(bookId, percent))
  8. .subscribe();
  9. }

代码示例来源:origin: gitskarios/GithubAndroidSdk

  1. private Observable<IssueStory> getIssueStory() {
  2. return Observable.zip(getIssueObservable(), getIssueDetailsObservable(), (issue, details) -> {
  3. IssueStory issueStory = new IssueStory();
  4. issueStory.item = issue;
  5. issueStory.details = details;
  6. Collections.sort(issueStory.details,
  7. IssueStoryComparators.ISSUE_STORY_DETAIL_COMPARATOR);
  8. return issueStory;
  9. });
  10. }

相关文章

Observable类方法