Ich habe diesen Code in einer Komponente, was sehe ich in der Konsole ist diese Nachricht: 'von Komponente 1: Mission gestartet'. Es wird also die Antwort korrekt vom Dienst empfangen, aber nach dem Abschluss möchte ich die Nachricht 'sucessed !!' und das passiert nie ... Wie kann ich etwas tun, wenn die subscribe()
abgeschlossen ist?Etwas tun, wenn subscribe() abschließt
onClick() {
this.service.announceMission('mission started');
this.service.missionAnnounced$.subscribe(response => console.log('from component 1: ' + response),
error => console.log('error: ', error),
() => console.log('successed!!'));
}
Und das ist der Code, den ich in meinem Dienst haben:
export class MissionService {
// Observable string sources
private missionAnnouncedSource = new BehaviorSubject("not started yet");
private missionConfirmedSource = new BehaviorSubject("not started yet");
// Observable string streams
missionAnnounced$ = this.missionAnnouncedSource.asObservable();
missionConfirmed$ = this.missionConfirmedSource.asObservable();
// Service message commands
announceMission(mission: string) {
this.missionAnnouncedSource.next(mission);
}
confirmMission(astronaut: string) {
this.missionConfirmedSource.next(astronaut);
}
}