【发布时间】:2017-01-19 10:41:11
【问题描述】:
我正在尝试从一个 Promise 中获取一个值,然后使用该值来解决另一个 Promise。
没有rxjs,它的工作方式如下:
Promise.resolve(1)
.then(value => Promise.resolve(value + 1))
.then(value => console.log(value))
输出:
2
这就是我被rxjs 困住的地方:
const observable = Rx.Observable.fromPromise(Promise.resolve(1))
.map(value => {
return Rx.Observable.fromPromise(Promise.resolve(value + 1));
})
const observer = value => console.log(value);
observable.subscribe(observer);
输出:
PromiseObservable {
_isScalar: false,
promise: Promise { 2 },
scheduler: undefined }
【问题讨论】:
-
将
map替换为concatMap,但这似乎是一件奇怪的事情。 -
这绝对看起来很奇怪,但我假设(或希望)实际用例涉及实际上不是静态解决的承诺,所以这样做是有实际理由的。
标签: javascript promise rxjs