【发布时间】:2016-01-05 16:29:22
【问题描述】:
RxJS 中 Promise.resolve 的等价物是什么?我知道我可以做到Observable.fromPromise(Promise.resolve(someValue));,但必须有更清洁的方式。
【问题讨论】:
-
要在 alexpods 上添加答案,observable 和 observer 的 Rx 文档真的很有启发性。
RxJS 中 Promise.resolve 的等价物是什么?我知道我可以做到Observable.fromPromise(Promise.resolve(someValue));,但必须有更清洁的方式。
【问题讨论】:
Observable.of 是您要查找的内容(请参阅this plunk):
// You might need to add this import in RxJS versions earlier than 5
import 'rxjs/add/observable/fromArray';
// ... or this line in RxJS 5+
import 'rxjs/add/observable/of';
if (me.groups) {
return Observable.of(me.groups);
}
【讨论】:
import {Observable} from 'rxjs';
import 'rxjs/add/observable/fromArray;
import { of } from 'rxjs';。您可以在此线程中阅读更多内容:stackoverflow.com/questions/36568388
Promise.resolve(),如果给定一个 Promise,将返回一个相同的 Promise。它本质上是无操作的,但它是确保您拥有的任何“东西”都被承诺包装的有用方法。
Observable.of() 相比之下,如果给定一个 observable,则不是空操作;它将返回一个包含原始 observable 的 observable。
为了of()可以和Promise.resolve的这个方面相媲美,这里的输出:
rxjs.of( rxjs.of(1,2,3) ).subscribe( { next: v => console.log(v) } )
……应该是 1、2、3,但它是 3 个 observables。
不幸的是,我不知道有哪个 RxJS 运算符可以做到这一点。
【讨论】: