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

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

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

Single.subscribeWith介绍

[英]Subscribes a given SingleObserver (subclass) to this Single and returns the given SingleObserver as is.

Usage example:

Single<Integer> source = Single.just(1); 
CompositeDisposable composite = new CompositeDisposable(); 
DisposableSingleObserver<Integer> ds = new DisposableSingleObserver<>() { 
// ... 
}; 
composite.add(source.subscribeWith(ds));

Scheduler: subscribeWith does not operate by default on a particular Scheduler.
[中]将给定的SingleObserver(子类)订阅到此SingleObserver,并按原样返回给定的SingleObserver。
用法示例:

Single<Integer> source = Single.just(1); 
CompositeDisposable composite = new CompositeDisposable(); 
DisposableSingleObserver<Integer> ds = new DisposableSingleObserver<>() { 
// ... 
}; 
composite.add(source.subscribeWith(ds));

调度程序:默认情况下,subscribeWith不会在特定调度程序上运行。

代码示例

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

/**
 * Returns a {@link Future} representing the single value emitted by this {@code Single}.
 * <p>
 * <img width="640" height="467" src="https://github.com/ReactiveX/RxJava/wiki/images/rx-operators/Single.toFuture.png" alt="">
 * <dl>
 *  <dt><b>Scheduler:</b></dt>
 *  <dd>{@code toFuture} does not operate by default on a particular {@link Scheduler}.</dd>
 * </dl>
 *
 * @return a {@link Future} that expects a single item to be emitted by this {@code Single}
 * @see <a href="http://reactivex.io/documentation/operators/to.html">ReactiveX documentation: To</a>
 */
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
public final Future<T> toFuture() {
  return subscribeWith(new FutureSingleObserver<T>());
}

代码示例来源:origin: redisson/redisson

/**
 * Returns a {@link Future} representing the single value emitted by this {@code Single}.
 * <p>
 * <img width="640" height="395" src="https://github.com/ReactiveX/RxJava/wiki/images/rx-operators/B.toFuture.png" alt="">
 * <dl>
 *  <dt><b>Scheduler:</b></dt>
 *  <dd>{@code toFuture} does not operate by default on a particular {@link Scheduler}.</dd>
 * </dl>
 *
 * @return a {@link Future} that expects a single item to be emitted by this {@code Single}
 * @see <a href="http://reactivex.io/documentation/operators/to.html">ReactiveX documentation: To</a>
 */
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
public final Future<T> toFuture() {
  return subscribeWith(new FutureSingleObserver<T>());
}

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

@Test
public void just() {
  Single.just(1)
  .doAfterSuccess(afterSuccess)
  .subscribeWith(to)
  .assertResult(1);
  assertEquals(Arrays.asList(1, -1), values);
}

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

@Test
public void error() {
  Single.<Integer>error(new TestException())
  .doAfterSuccess(afterSuccess)
  .subscribeWith(to)
  .assertFailure(TestException.class);
  assertTrue(values.isEmpty());
}

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

@Test
public void withSingle() {
  assertEquals(1, Single.just(1).subscribeWith(new ObserverImpl()).value);
}

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

@Test
public void just() {
  Single.just(1)
  .doAfterTerminate(afterTerminate)
  .subscribeWith(to)
  .assertResult(1);
  assertAfterTerminateCalledOnce();
}

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

@Test
public void error() {
  Single.<Integer>error(new TestException())
  .doAfterTerminate(afterTerminate)
  .subscribeWith(to)
  .assertFailure(TestException.class);
  assertAfterTerminateCalledOnce();
}

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

@Override
protected void protectedRun(final ObservableEmitter<BluetoothGatt> emitter, final QueueReleaseInterface queueReleaseInterface) {
  final Action queueReleaseAction = new Action() {
    @Override
    public void run() {
      queueReleaseInterface.release();
    }
  };
  final DisposableSingleObserver<BluetoothGatt> disposableGattObserver = getConnectedBluetoothGatt()
      .compose(wrapWithTimeoutWhenNotAutoconnecting())
      // when there are no subscribers there is no point of continuing work -> next will be disconnect operation
      .doFinally(queueReleaseAction)
      .subscribeWith(disposableSingleObserverFromEmitter(emitter));
  emitter.setDisposable(disposableGattObserver);
  if (autoConnect) {
    // with autoConnect the connection may be established after a really long time
    queueReleaseInterface.release();
  }
}

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

.subscribeWith(disposableSingleObserverFromEmitter(emitter));

代码示例来源:origin: vogellacompany/codeexamples-android

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  if (parent.getSelectedItem() instanceof GithubRepo) {
    GithubRepo githubRepo = (GithubRepo) parent.getSelectedItem();
    compositeDisposable.add(githubAPI.getIssues(githubRepo.owner, githubRepo.name)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribeWith(getIssuesObserver()));
  }
}

代码示例来源:origin: vogellacompany/codeexamples-android

public void onClick(View view) {
  switch (view.getId()) {
    case R.id.loadRepos_button:
      compositeDisposable.add(githubAPI.getRepos()
          .subscribeOn(Schedulers.io())
          .observeOn(AndroidSchedulers.mainThread())
          .subscribeWith(getRepositoriesObserver()));
      break;
    case R.id.send_comment_button:
      String newComment = commentEditText.getText().toString();
      if (!newComment.isEmpty()) {
        GithubIssue selectedItem = (GithubIssue) issuesSpinner.getSelectedItem();
        selectedItem.comment = newComment;
        compositeDisposable.add(githubAPI.postComment(selectedItem.comments_url, selectedItem)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeWith(getCommentObserver()));
      } else {
        Toast.makeText(MainActivity.this, "Please enter a comment", Toast.LENGTH_LONG).show();
      }
      break;
  }
}

代码示例来源:origin: shanraisshan/Refactoring-Android-App-Series-Overview

public void loadBooks() {
  compositeDisposable.add(bookRepository.getBooks()
      .subscribeOn(Schedulers.io())
      .observeOn(mainScheduler)
      .subscribeWith(new DisposableSingleObserver<List<Book>>() {
        @Override
        public void onSuccess(List<Book> bookList) {
          System.out.println("Thread subscribe(): " + Thread.currentThread().getId());
          if (bookList.isEmpty()) {
            view.displayNoBooks();
          } else {
            view.displayBooks(bookList);
          }
        }
        @Override
        public void onError(Throwable e) {
          System.out.println("Throwable: " + e.toString());
          view.displayError();
        }
      }));
}

代码示例来源:origin: jorgegil96/All-NBA

public void resetPaginatorThenLoadPosts(Sorting sorting, TimePeriod timePeriod) {
  if (subreddit.equals(Constants.MULTI_SWISH)) {
    redditService.getMultiReddit(redditAuthentication.getRedditClient(),
        "Obi-Wan_Ginobili", Constants.MULTI_SWISH)
        .subscribeOn(schedulerProvider.io())
        .observeOn(schedulerProvider.ui())
        .subscribeWith(new DisposableSingleObserver<MultiReddit>() {
          @Override
          public void onSuccess(MultiReddit multiReddit) {
            postsRepository.reset(sorting, timePeriod, multiReddit);
            loadPosts(true /* reset */);
          }
          @Override
          public void onError(Throwable e) {
            view.showPostsLoadingFailedSnackbar(true);
          }
        });
  } else {
    postsRepository.reset(sorting, timePeriod, subreddit);
    loadPosts(true /* reset */);
  }
}

代码示例来源:origin: jorgegil96/All-NBA

.subscribeOn(schedulerProvider.io())
.observeOn(schedulerProvider.ui())
.subscribeWith(new DisposableSingleObserver<Streamable>() {
  @Override
  public void onSuccess(Streamable streamable) {

代码示例来源:origin: petrnohejl/Android-Stocks

private void sendQuote(String symbol) {
  if (NetworkUtility.isOnline(getApplicationContext())) {
    String callType = StocksRxRouter.QUOTE_CALL_TYPE;
    if (!mRestRxManager.isRunning(callType)) {
      // show progress
      state.set(StatefulLayout.PROGRESS);
      // subscribe
      Single<Response<QuoteEntity>> rawSingle = StocksRxRouter.getService().quote("json", symbol);
      Single<Response<QuoteEntity>> single = mRestRxManager.setupRestSingleWithSchedulers(rawSingle, callType);
      single.subscribeWith(createQuoteObserver());
    }
  } else {
    // show offline
    state.set(StatefulLayout.OFFLINE);
  }
}

代码示例来源:origin: petrnohejl/Android-Stocks

private void sendLookup(String input) {
  if (NetworkUtility.isOnline(getApplicationContext())) {
    String callType = StocksRxRouter.LOOKUP_CALL_TYPE;
    if (!mRestRxManager.isRunning(callType)) {
      // show progress
      state.set(StatefulLayout.PROGRESS);
      // subscribe
      Single<Response<List<LookupEntity>>> rawSingle = StocksRxRouter.getService().lookup("json", input);
      Single<Response<List<LookupEntity>>> single = mRestRxManager.setupRestSingleWithSchedulers(rawSingle, callType);
      single.subscribeWith(createLookupObserver());
    }
  } else {
    // show offline
    state.set(StatefulLayout.OFFLINE);
  }
}

代码示例来源:origin: petrnohejl/Android-Stocks

private void sendLookup(String input) {
  if (NetworkUtility.isOnline(getApplicationContext())) {
    String callType = StocksRxRouter.LOOKUP_CALL_TYPE;
    if (!mRestRxManager.isRunning(callType)) {
      // show progress
      state.set(StatefulLayout.PROGRESS);
      // subscribe
      Single<Response<List<LookupEntity>>> rawSingle = StocksRxRouter.getService().lookup("json", input);
      Single<Response<List<LookupEntity>>> single = mRestRxManager.setupRestSingleWithSchedulers(rawSingle, callType);
      single.subscribeWith(createLookupObserver());
    }
  } else {
    // show offline
    state.set(StatefulLayout.OFFLINE);
  }
}

代码示例来源:origin: jorgegil96/All-NBA

public void loadSubscriberCount() {
  disposables.add(redditAuthentication.authenticate()
      .andThen(redditService.getSubscriberCount(redditAuthentication.getRedditClient(),
          subreddit))
      .subscribeOn(schedulerProvider.io())
      .observeOn(schedulerProvider.ui())
      .subscribeWith(new DisposableSingleObserver<SubscriberCount>() {
        @Override
        public void onSuccess(SubscriberCount subscriberCount) {
          if (isViewAttached()) {
            view.showSubscribers(subscriberCount);
          }
        }
        @Override
        public void onError(Throwable e) {
        }
      })
  );
}

代码示例来源:origin: jorgegil96/All-NBA

public void loadStandings() {
  view.setLoadingIndicator(true);
  view.dismissSnackbar();
  view.hideStandings();
  disposables.clear();
  disposables.add(nbaStandingsService.getStandings("22018")
      .subscribeOn(schedulerProvider.io())
      .map(this::sortTeams)
      .observeOn(schedulerProvider.ui())
      .subscribeWith(new DisposableSingleObserver<Standings>() {
        @Override
        public void onSuccess(Standings standings) {
          view.setLoadingIndicator(false);
          view.showStandings(standings);
        }
        @Override
        public void onError(Throwable e) {
          view.setLoadingIndicator(false);
          view.showSnackbar(true);
        }
      })
  );
}

代码示例来源:origin: jorgegil96/All-NBA

.subscribeOn(schedulerProvider.io())
.observeOn(schedulerProvider.ui())
.subscribeWith(new DisposableSingleObserver<List<Highlight>>() {
  @Override
  public void onSuccess(List<Highlight> highlights) {

相关文章

微信公众号

最新文章

更多