Ich habe eine Methode, die auf eine Observable warten muss, um zu beenden. Ich weiß, beobachtbar sind großartig für die Rückgabe einzelner Daten im Laufe der Zeit, aber ich muss wissen, wann dieses Observable vollständig fertig ist, alle seine Daten zurückgeben, damit ich Validierungscode auf das Objekt, das es zurückgegeben hat, ausführen kann.Warten auf eine Observable zu beenden
Die Methode getCustom abonniert einen beobachtbaren Lauf auf der gelieferten URL, der das Observable zurückgibt.
Ich bin mir nicht sicher, ob dies der beste Weg ist, um diese Situation anzugehen, also würde ich mich freuen, wenn mir jemand einen Rat oder eine Anweisung geben könnte, damit umzugehen.
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
});
}
Sie können nicht warten, bis ein Observable zu Ende ist. Sie können nur abonnieren und einen Rückruf an "subscribe (...)" übergeben, der beim Eintreffen der Daten aufgerufen wird. –
Diese beiden Methoden sind beide in verschiedenen Diensten, könnten Sie vielleicht ein Beispiel geben, was Sie meinen? –
Dann rufen Sie 'subscribe()' nicht im Service auf (geben Sie einfach das beobachtbare 'return this.riskService.getCustom (" Url ");' zurück und verwenden Sie in dem Service, in dem Sie die Daten benötigen, 'getRiskFromServer (...) .subscribe (...) 'Siehe auch http://stackoverflow.com/questions/36271899/what-ist-the-correct-way-to-share-the-result-of-an-angular-2-http- network-call-in/36291681 # 36291681 –