【发布时间】:2016-09-11 09:42:33
【问题描述】:
我正在尝试链接两个可观察对象。我正在使用 Ionic2 框架。第一个 observable 尝试从移动设备获取访问令牌,然后第二个 observable 然后使用该访问令牌调用 api。但是由于某种原因,即使我订阅了链,第二个 observable 也永远不会被调用。
我错过了什么?
this.observableChain = Observable.fromPromise(this.storage.get('accessToken'))
.map(accessToken => this.http.post('http://1234/user/login', {'accessToken': accessToken}))
.subscribe(function(result) {
console.log(result);
}, function(error) {
console.log(error);
});
提前致谢。
【问题讨论】:
-
你试过
flatMap()而不是map()吗? -
Flatmap 已修复它。非常感谢。你能解释一下为什么这会解决它吗?
-
我可以尝试解释一下,但我自己只是在使用 Ionic2 学习 Observables,所以希望这个链接对你有所帮助 - reactivex.io/documentation/operators/flatmap.html。简单的规则是,如果您需要返回另一个 observable 的流(或者在您的情况下发出另一个 http 请求),那么
flatMap()是您的朋友。如果您愿意,我可以将其发布为答案。 -
继续吧。感谢您提供有意义的链接。
标签: javascript angular ionic2 observable chaining