我在服务层中有以下代码,我有两个问题:
return this.equipmentService.getEquipment(this.id) //returns subscription
.subscribe((equipment : Equipment) =>
{
this.getEquipmentTags(); //returns subscription
this.getPredictions(); //returns subscription
});
});
答案 0 :(得分:1)
我认为你要找的是主题。
主题可以充当Observable或Observer,因此您既可以订阅也可以调用.next()
来发送事件。它们还包含有用的方法,例如complete()
或error()
,可让您控制特定主题的状态。
以下是a useful article,涵盖了该主题的基础。
答案 1 :(得分:1)
不要太早启动订阅,因为@igor指出并且你(this.equipmentService.getEquipment(this.id)
不返回订阅,它返回一个Observable,因为以其他方式你不能订阅它),使用{{1 (以及可管理的运算符)将Observables链接起来。
concatMap
然后调用它,
getChainedObservables() {
return this.equipmentService.getEquipment(this.id)
.pipe(
concatMap((equipment : Equipment) => this.getEquipmentTags()),
concatMap(() => this.getPredictions())
);
}