【发布时间】:2017-09-08 01:35:47
【问题描述】:
我有一个方法需要等待 observable 完成。我知道 observable 非常适合随着时间的推移返回单个数据,但我需要知道这个 observable 何时完全完成返回其所有数据,以便我可以在它返回的对象上运行验证代码。
getCustom 方法订阅了在提供的 url 上运行的 observable,然后返回 observable。
我不太确定这是否是处理这种情况的最佳方法,所以如果有人能给我任何建议或指导来处理这个问题,我将不胜感激。
private validateQuoteRetrievalAnswers(reference: string) {
// Get the risk from the server
this.riskManager.getRiskFromServer(reference);
if (this.riskManager.risk) {
// Validate risk that was returned
}
}
getRiskFromServer(quoteReference: string) {
this.riskService.getCustom("Url").subscribe => {
// need to know when the observable has returned the risk
});
}
【问题讨论】:
-
你不能等待 observable 完成。您只能订阅并将回调传递给
subscribe(...),当数据到达时调用该回调。 -
这两种方法都在不同的服务中,你能举例说明你的意思吗?
-
那么不要在服务中调用
subscribe()(只需返回可观察到的return this.riskService.getCustom("Url");,在需要数据的服务中使用getRiskFromServer(...).subscribe(...)另见stackoverflow.com/questions/36271899/…
标签: angular typescript rxjs5 angular2-observables