【发布时间】:2015-11-04 00:07:11
【问题描述】:
我想知道是否有办法让 observable 跳到订阅操作符(不终止)。我的用例是,我有一个“loginClicked”可观察对象(一个主题),我在其中执行 API 调用,然后订阅下一个事件。 API 调用是使用 Promise 执行的,我遇到的任何错误都会包含在一个
Promise.resolve(error)
这样可观察对象不会终止(允许他们尝试使用相同的可观察对象(主题)再次登录)。
但是,在我调用我想要使用的 API 之前,
doOnNext()
检查互联网连接。如果有连接,则照常继续。但是,如果没有任何内容,我想立即进入订阅的 onNext 回调,传入一些“NoConnectivityError”。
有什么可以帮助我解决这个问题还是我的方法不对?
谢谢。
更新
例如:
this.loginClickedStream
.doOnNext(function() {
if (!connectedToWifi) {
//Skip to subscribe passing some data somehow
skipToSubscribe({error: 'NotConnectedToWifi'});
}
})
.flatMap(function() {
return fetch(url);
})
.subscribe(function(response) {
if (response.error === 'NotConnectedToWifi') {
//Show alert
} else if (response.ok) {
//Display response in UI
} else {
//Show alert showing error
}
});
请注意,当用户未连接到 wifi 时,observable 是如何直接传递给 subscribe 方法的。我希望这更清楚。
【问题讨论】:
-
您能否添加一个更完整的代码示例来说明您目前所拥有的内容?我不清楚你到底想做什么。
-
我已经更新了 OP,希望对您有所帮助。
标签: functional-programming reactive-programming rxjs