我们开始订阅一个Observable以接收被推到下游的事件。这不是巧合。与RxJava一起工作的大部分时间,您将与现有的Observables进行交互,交互通常是合并、过滤和相互封装。但是,除非您使用的外部API已经公开了Observable,否则您首先必须了解Observable来自何处,以及如何创建流和处理订阅。首先,有几个工厂方法可以创建常量式的 Observable。如果您希望在整个代码库中一致地使用RxJava,或者当被发生的值很容易计算并且提前知道时,那么这些方法是非常有用的:

  • Observable.just(value):创建一个Observable实例,该实例向未来所有订阅者发出精确的一个值,然后Completion(完成)。重载的just()操作符可以是2到10个value的版本。
  • Observable.from(values):与just()类似,但接受 Iterable<T>或T[],从而创建 Observable<T>,其值与值集合中的元素相同。另一个重载版本接受 Future<T>,在潜在的Future完成时发出事件。
  • Observable.range(from, n):从from的值开始,一次产生那个int值,比方说range(5,3)就会产生5,6,7这三个数,发送并正常完成。每个订阅者将收到相同的一组数字。
  • Observable.empty():在订阅之后立即完成,而不会发出任何值
  • Observable.never():这样的Observable永远不会发出任何通知,无论是值还是Completion或者是Error
  • Observable.error():向每个订阅服务器发出一个onError()通知。没有其他值被发射,并且根据规定onCompleted()也不会发生。

results matching ""

    No results matching ""