1
私はこのコードをコンポーネントの中に持っていますが、コンソールに表示されるのは「コンポーネント1からミッションを開始しました。だからサービスからの応答を正しく取得していますが、完了したら「成功しました!」というメッセージを印刷したいと思います。それは決して起こっていません... subscribe()
が完了したら、どうすればいいですか?subscribe()が完了したら何かをする
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!!'));
}
そして、これは私が私のサービスを持っているコードです:
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);
}
}