为什么我们需要Observer.from()

时间:2017-09-20 15:19:13

标签: java android rx-java rx-android rx-java2

我正在学习Android中的RxJava。我在这里遵循这个教程: http://plavatvornica.com/rxjava-for-beginners/

如下面的代码所示,我创建了一个observable,它通过onError发出列表中的项目

我有一个问题要深入了解RxJava图书馆的用法。问题是,为什么我需要逐个使用RxJava来列表中的项目?我可以 做同样的想法使用循环!由于RxJava库提供了这样的功能,我相信它应该由于特定的需要而随之而来。

你可以帮我理解吗

Subscriber listSubscriber = new Subscriber<String>() {
    @Override
    public void onCompleted() {
        Log.i(TAG, "I am done");
    }

    @Override
    public void onError(Throwable e) {
        Log.e(TAG, e.getMessage().toString());
    }

    @Override
    public void onNext(String s) {
        Log.i(TAG, "onNext: " + s);

    }
};

 //list as observable
    List<String> list = new ArrayList<>();
    list.add("1");
    list.add("2");
    list.add("3");
    list.add("4");
    Observable myObservable3 = Observable.from(list);

    myObservable3.subscribe(listSubscriber);

1 个答案:

答案 0 :(得分:0)

它来自反应式编程的想法:在你发送消息之前没有任何东西在跳跃,即在真正的应用程序中,在你订阅观察者之前永远不会请求数据。特别是你的例子并没有表达这个想法。但是,如果它是,例如,数据库提取,那么它将是有帮助的。此外,反应式编程在异步编程时特别好,因为直接允许过程数据直接接收它而没有空闲。