Just 运算符将一个项目转换为一个发出该项目的 Observable。
Just 与 From 类似,但请注意 From 会深入到数组、可迭代对象或类似的东西中以提取要发出的项目,而 Just 只会将数组、可迭代对象或其他任何东西原封不动地发出,作为一个单一项目。
请注意,如果您将 null
传递给 Just,它将返回一个发出 null
作为项目的 Observable。不要误以为这将返回一个空的 Observable(一个根本不发出任何项目的 Observable)。为此,您需要 Empty 运算符。
待定
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 );
just(item)
(还有一些版本接受两个到九个项目作为参数)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.
just(item)
(还有一些版本接受两个到九个项目作为参数)RxJS 将此运算符实现为 return
和 just
(两个名称代表相同运算符,具有相同行为)。它接受一个项目作为参数,并返回一个将该项目作为其唯一发射项发出的 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
的区别在于,后者的参数是一个数组或一个序列,并将其每个元素作为一次发射项发射。