Just

创建一个发出特定项目的 Observable

Just

Just 运算符将一个项目转换为一个发出该项目的 Observable。

JustFrom 类似,但请注意 From 会深入到数组、可迭代对象或类似的东西中以提取要发出的项目,而 Just 只会将数组、可迭代对象或其他任何东西原封不动地发出,作为一个单一项目。

请注意,如果您将 null 传递给 Just,它将返回一个发出 null 作为项目的 Observable。不要误以为这将返回一个空的 Observable(一个根本不发出任何项目的 Observable)。为此,您需要 Empty 运算符。

另请参阅

特定语言信息

待定

just

RxGroovy 将此运算符实现为 just。它接受一个到九个项目作为参数,并返回一个以相同顺序发出这些项目的 Observable,与参数列表中提供的顺序相同。

just 默认情况下不会在任何特定的 Scheduler 上运行。

示例代码

// Observable emits "some string" as a single item
def observableThatEmitsAString = Observable.just("some string"); 
// Observable emits the list [1, 2, 3, 4, 5] as a single item
def observableThatEmitsAList = Observable.just([1, 2, 3, 4, 5]); 
// Observable emits 1, 2, 3, 4, and 5 as distinct items
def observableThatEmitsSeveralNumbers = Observable.just( 1, 2, 3, 4, 5 );
  • Javadoc: just(item)(还有一些版本接受两个到九个项目作为参数)
just

RxJava 将此运算符实现为 just。它接受一个到九个项目作为参数,并返回一个以相同顺序发出这些项目的 Observable,与参数列表中提供的顺序相同。

just 默认情况下不会在任何特定的 Scheduler 上运行。

示例代码

Observable.just(1, 2, 3)
          .subscribe(new Subscriber<Integer>() {
        @Override
        public void onNext(Integer item) {
            System.out.println("Next: " + item);
        }

        @Override
        public void onError(Throwable error) {
            System.err.println("Error: " + error.getMessage());
        }

        @Override
        public void onCompleted() {
            System.out.println("Sequence complete.");
        }
    });
Next: 1
Next: 2
Next: 3
Sequence complete.
  • Javadoc: just(item)(还有一些版本接受两个到九个项目作为参数)
just

RxJS 将此运算符实现为 returnjust(两个名称代表相同运算符,具有相同行为)。它接受一个项目作为参数,并返回一个将该项目作为其唯一发射项发出的 Observable。

return/just 默认情况下在 immediate Scheduler 上运行,但您也可以将您选择的 Scheduler 作为可选的第二个参数传入,在这种情况下,它将改为在该 Scheduler 上运行。

示例代码

var source = Rx.Observable.just(42);

var subscription = source.subscribe(
  function (x) { console.log('Next: %s', x); },
  function (err) { console.log('Error: %s', err); },
  function () { console.log('Completed'); });
Next: 42
Completed

return/just 可以在以下每个发行版中找到

  • rx.js
  • rx.compat.js
  • rx.lite.js
  • rx.lite.compat.js

待定

RxPHP 将此运算符实现为 of

返回一个包含单个元素的可观察序列。

示例代码

//from https://github.com/ReactiveX/RxPHP/blob/master/demo/of/of.php


$source =  \Rx\Observable::of(42);

$subscription = $source->subscribe($stdoutObserver);

   
Next value: 42
Complete!
    

待定

在 Swift 中,这是使用 Observable.just 类方法实现的。

参数,无论是元组(即 (1, 2, 3))还是数组(即 [1,2,3]),都将产生一个发射项。

示例代码

let source = Observable.just(1, 2, 3)

source.subscribe {
    print($0)
}

let source2 = Observable.just([1,2,3])

source2.subscribe {
    print($0)
}
next((1, 2, 3))
completed
next([1, 2, 3])
completed

这与 Observable.from 的区别在于,后者的参数是一个数组或一个序列,并将其每个元素作为一次发射项发射。