私はこのような角度成分があります。RxJS、:他の方法では、サブスクリプションの結果を受け取ることができません
をそれは通常のReplaySubjectを作成します。 (constructor
参照)。 次に、他のコンポーネントの一部は、という方法でsubject
を取得し、それにサブスクライブします。別のコンポーネントは、setValue
によって新しい値を設定します。この値は、サブスクライバによって受信される必要があります。しかし、これは起こりません。何も受け取っていない、何のエラーもない。
@Injectable()
export class BreadcrumbService {
subject: ReplaySubject<string>;
constructor() {
this.subject = new ReplaySubject<string>();
console.log('Step 1: Subject created');
}
getSubject(): ReplaySubject<string> {
console.log('Step 2: Return subject for subscribing');
return this.subject;
}
setValue(title: string) {
console.log('Step 3: Invoke a new value which should be received in the Subscriber of step 2.');
this.subject.next(title);
}
}
サブスクリプションをsetValue()
内に配置すると、期待どおりに機能します。ここで
は、サブスクリプションを受けるべきである私のコンポーネントである:
export class BreadcrumbComponent implements OnInit {
constructor(
private breadcrumbsService: BreadcrumbService
) {}
ngOnInit() {
this.breadcrumbsService.getSubject()
.subscribe(
success => {
console.log(success); // is never called
},
error => {
console.log(error); // is never called
}
);
}
}
どのように私の加入者は、この値を受け取ることができますか?
あなたは@ガンターが言ったことを確認しましたか?すべてがエラーなしで動作するはずです。 – micronyks