angular 2中的条件可观察对象链
Conditional Observable chaining in angular 2
我在Angular 2中工作,我正在从一个服务中进行一系列异步调用。在我的呼叫链中,有些呼叫只需要有条件地进行。我的初始调用链如下所示:
伪代码
this.post().flatMap( () => this.put() ).flatMap( () => this.get() )..etc.
然后我需要根据变量数组有条件地附加额外的异步调用到我的链。
我正在使用这种方法:
伪代码
...flatMap( () => return this.additionalCallsFunction(callArray) )
.flatMap( () => this.finalPostRequest() ).subscribe(...)
additionalCallsFunction(callArray){
if(callArray.length === 0) return Observable.empty()
else { return this.get().concatMap( (res) => this.put(res).flatMap( () => {
callArray.removefirstItem()
return this.additionalCallsFunction(callArray)
});
}
我是Angular和Observables的新手,所以我不确定我是否正确地处理了这个问题。无论我的附加调用数组是否为空,我都看到我的初始调用发生了,但是当我的函数返回时,附加调用和我的最终Post请求都没有通过。我也没有在控制台中看到任何错误。我试过用。never()代替。empty(),但没有变化。
感谢任何帮助/建议!
我也有同样的情况,我最终使用Observable.of(undefined)
而不是Observable.empty()
。我不知道为什么,但是Observable.empty()
打断了这个链。
相关文章:
- 在ko.applyBindings(..)中执行Knockout js订阅函数(用于可观察对象)
- Knockout.js用单个json对象绑定一个可观察对象
- 根据某些条件将 JS 绑定到可观察对象内的数组元素
- 如何从挖空可观察对象中获取所选项目的文本
- 从另一个可观察对象获取价值的最佳方法,而无需组合最新
- 可观察对象的角 2 条件链接
- 观察对象是否已更改
- 如何在 angularjs 中观察对象中的对象
- 将通过原型计算的可观察对象添加到构造函数中
- 挖空解包可观察对象无法按预期工作
- 如何从可观察对象数组中删除项目
- 使用 Knockout 和 Typescript.如何从订阅中更改可观察对象的值
- Knockout+Moment.js–更新可观察对象内的相对日期
- 在AngularJS中观察对象
- 角度,观察对象中的特定关键点
- 微风导航阵列成员是淘汰赛中的可依赖观察对象
- 在knockout.js中为可观察对象添加属性后为什么出现TypeError
- Knockout js,访问循环外的可观察对象
- 敲除:绑定到同一可观察对象的几个 DOM 元素
- KnockoutJS-一个计算可写的可观察对象;无法正确更新绑定