io.reactivex.Observable.unsafeCreate()方法的使用及代码示例

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

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

Observable.unsafeCreate介绍

[英]Create an Observable by wrapping an ObservableSource which has to be implemented according to the Reactive-Streams-based Observable specification by handling cancellation correctly; no safeguards are provided by the Observable itself. Scheduler: unsafeCreate by default doesn't operate on any particular Scheduler.
[中]通过包装ObservableSource创建一个Observable,该ObservableSource必须根据基于反应流的Observable规范通过正确处理取消来实现;可观察物体本身不提供任何保护措施*。调度程序:默认情况下,未完成处理不会在任何特定调度程序上运行。

代码示例

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

  1. @Override
  2. public Observable<Integer> apply(Disposable subscription) {
  3. return Observable.unsafeCreate(new ObservableSource<Integer>() {
  4. @Override
  5. public void subscribe(Observer<? super Integer> t1) {
  6. throw new TestException();
  7. }
  8. });
  9. }
  10. };

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

  1. @Override
  2. public Observable<Object> apply(Object opening) {
  3. return Observable.unsafeCreate(new ObservableSource<Object>() {
  4. @Override
  5. public void subscribe(Observer<? super Object> observer) {
  6. observer.onSubscribe(Disposables.empty());
  7. push(observer, new Object(), 100);
  8. complete(observer, 101);
  9. }
  10. });
  11. }
  12. };

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

  1. @Override
  2. public Observable<Object> apply(Object opening) {
  3. return Observable.unsafeCreate(new ObservableSource<Object>() {
  4. @Override
  5. public void subscribe(Observer<? super Object> innerObserver) {
  6. innerObserver.onSubscribe(Disposables.empty());
  7. push(innerObserver, new Object(), 100);
  8. complete(innerObserver, 101);
  9. }
  10. });
  11. }
  12. };

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

  1. @Override
  2. public void subscribe(Observer<? super Integer> observer1) {
  3. Observable.unsafeCreate(new ObservableSource<Integer>() {
  4. @Override
  5. public void subscribe(Observer<? super Integer> observer2) {
  6. throw new IllegalArgumentException("original exception");
  7. }
  8. }).subscribe(observer1);
  9. }
  10. }

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

  1. @Override
  2. public void subscribe(Observer<? super Integer> observer1) {
  3. Observable.unsafeCreate(new ObservableSource<Integer>() {
  4. @Override
  5. public void subscribe(Observer<? super Integer> observer2) {
  6. throw new IllegalArgumentException("original exception");
  7. }
  8. }).subscribe(observer1);
  9. }
  10. }

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

  1. @Test(expected = IllegalArgumentException.class)
  2. public void unsafeWithObservable() {
  3. Observable.unsafeCreate(Observable.just(1));
  4. }

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

  1. @Test(expected = NullPointerException.class)
  2. public void createNull() {
  3. Observable.unsafeCreate(null);
  4. }

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

  1. private static Observable<String> infinite(final AtomicInteger produced) {
  2. return Observable.unsafeCreate(new ObservableSource<String>() {
  3. @Override
  4. public void subscribe(Observer<? super String> observer) {
  5. Disposable bs = Disposables.empty();
  6. observer.onSubscribe(bs);
  7. while (!bs.isDisposed()) {
  8. observer.onNext("onNext");
  9. produced.incrementAndGet();
  10. }
  11. }
  12. }).subscribeOn(Schedulers.newThread());
  13. }

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

  1. @Test
  2. public void testMergeList() {
  3. final Observable<String> o1 = Observable.unsafeCreate(new TestSynchronousObservable());
  4. final Observable<String> o2 = Observable.unsafeCreate(new TestSynchronousObservable());
  5. List<Observable<String>> listOfObservables = new ArrayList<Observable<String>>();
  6. listOfObservables.add(o1);
  7. listOfObservables.add(o2);
  8. Observable<String> m = Observable.merge(listOfObservables);
  9. m.subscribe(stringObserver);
  10. verify(stringObserver, never()).onError(any(Throwable.class));
  11. verify(stringObserver, times(1)).onComplete();
  12. verify(stringObserver, times(2)).onNext("hello");
  13. }

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

  1. @Test
  2. public void testMergeArray() {
  3. final Observable<String> o1 = Observable.unsafeCreate(new TestSynchronousObservable());
  4. final Observable<String> o2 = Observable.unsafeCreate(new TestSynchronousObservable());
  5. Observable<String> m = Observable.merge(o1, o2);
  6. m.subscribe(stringObserver);
  7. verify(stringObserver, never()).onError(any(Throwable.class));
  8. verify(stringObserver, times(2)).onNext("hello");
  9. verify(stringObserver, times(1)).onComplete();
  10. }

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

  1. @Test
  2. public void testMergeArray() {
  3. final Observable<String> o1 = Observable.unsafeCreate(new TestSynchronousObservable());
  4. final Observable<String> o2 = Observable.unsafeCreate(new TestSynchronousObservable());
  5. Observable<String> m = Observable.mergeDelayError(o1, o2);
  6. m.subscribe(stringObserver);
  7. verify(stringObserver, never()).onError(any(Throwable.class));
  8. verify(stringObserver, times(2)).onNext("hello");
  9. verify(stringObserver, times(1)).onComplete();
  10. }

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

  1. @Test
  2. public void testMergeList() {
  3. final Observable<String> o1 = Observable.unsafeCreate(new TestSynchronousObservable());
  4. final Observable<String> o2 = Observable.unsafeCreate(new TestSynchronousObservable());
  5. List<Observable<String>> listOfObservables = new ArrayList<Observable<String>>();
  6. listOfObservables.add(o1);
  7. listOfObservables.add(o2);
  8. Observable<String> m = Observable.mergeDelayError(Observable.fromIterable(listOfObservables));
  9. m.subscribe(stringObserver);
  10. verify(stringObserver, never()).onError(any(Throwable.class));
  11. verify(stringObserver, times(1)).onComplete();
  12. verify(stringObserver, times(2)).onNext("hello");
  13. }

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

  1. @Test
  2. public void testOriginFails() {
  3. Observer<String> observer = TestHelper.mockObserver();
  4. Observable<String> origin = Observable.unsafeCreate(new FuncWithErrors(1));
  5. origin.subscribe(observer);
  6. InOrder inOrder = inOrder(observer);
  7. inOrder.verify(observer, times(1)).onNext("beginningEveryTime");
  8. inOrder.verify(observer, times(1)).onError(any(RuntimeException.class));
  9. inOrder.verify(observer, never()).onNext("onSuccessOnly");
  10. inOrder.verify(observer, never()).onComplete();
  11. }

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

  1. @Override
  2. public void subscribe(Observer<? super Observable<String>> op) {
  3. op.onSubscribe(Disposables.empty());
  4. op.onNext(Observable.unsafeCreate(o1));
  5. op.onNext(Observable.unsafeCreate(o2));
  6. op.onError(new NullPointerException("throwing exception in parent"));
  7. }
  8. });

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

  1. @Override
  2. public void subscribe(Observer<? super Observable<String>> observer) {
  3. observer.onSubscribe(Disposables.empty());
  4. // simulate what would happen in an Observable
  5. observer.onNext(Observable.unsafeCreate(w1));
  6. observer.onNext(Observable.unsafeCreate(w2));
  7. observer.onComplete();
  8. }

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

  1. @Test
  2. public void testMergeArrayWithThreading() {
  3. final TestASynchronousObservable o1 = new TestASynchronousObservable();
  4. final TestASynchronousObservable o2 = new TestASynchronousObservable();
  5. Observable<String> m = Observable.merge(Observable.unsafeCreate(o1), Observable.unsafeCreate(o2));
  6. TestObserver<String> to = new TestObserver<String>(stringObserver);
  7. m.subscribe(to);
  8. to.awaitTerminalEvent();
  9. to.assertNoErrors();
  10. verify(stringObserver, never()).onError(any(Throwable.class));
  11. verify(stringObserver, times(2)).onNext("hello");
  12. verify(stringObserver, times(1)).onComplete();
  13. }

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

  1. @Test
  2. public void testOnError() {
  3. TestObserver<String> to = new TestObserver<String>();
  4. Observable.unsafeCreate(new ObservableSource<String>() {
  5. @Override
  6. public void subscribe(Observer<? super String> observer) {
  7. observer.onSubscribe(Disposables.empty());
  8. observer.onError(new RuntimeException("fail"));
  9. }
  10. }).subscribeOn(Schedulers.computation()).subscribe(to);
  11. to.awaitTerminalEvent(1000, TimeUnit.MILLISECONDS);
  12. to.assertTerminated();
  13. }

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

  1. @Test
  2. public void testMultipleSubscribes() throws InterruptedException, ExecutionException {
  3. final TestAsyncErrorObservable o = new TestAsyncErrorObservable("one", "two", null, "three");
  4. Observable<Notification<String>> m = Observable.unsafeCreate(o).materialize();
  5. assertEquals(3, m.toList().toFuture().get().size());
  6. assertEquals(3, m.toList().toFuture().get().size());
  7. }

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

  1. @Test
  2. @Ignore("ObservableSource.subscribe can't throw")
  3. public void testThrownErrorHandling() {
  4. TestObserver<String> to = new TestObserver<String>();
  5. Observable.unsafeCreate(new ObservableSource<String>() {
  6. @Override
  7. public void subscribe(Observer<? super String> observer) {
  8. throw new RuntimeException("fail");
  9. }
  10. }).subscribeOn(Schedulers.computation()).subscribe(to);
  11. to.awaitTerminalEvent(1000, TimeUnit.MILLISECONDS);
  12. to.assertTerminated();
  13. }

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

  1. @Test
  2. public void testSwitchShouldTriggerUnsubscribe() {
  3. final Disposable d = Disposables.empty();
  4. Observable.unsafeCreate(new ObservableSource<Long>() {
  5. @Override
  6. public void subscribe(final Observer<? super Long> observer) {
  7. observer.onSubscribe(d);
  8. observer.onComplete();
  9. }
  10. }).switchIfEmpty(Observable.<Long>never()).subscribe();
  11. assertTrue(d.isDisposed());
  12. }
  13. }

相关文章

Observable类方法