我已经使用了受下一个可观察的行为。
组件1.ts
this._service.searchText(result);
服务.ts
private searchSubject= new Subject<any>();
searchText(mission: any) {
this.searchSubject.next(mission);
}
search$ = this.searchSubject.asObservable();
组件2.ts
subscriptions: Array<Subscription> = [];
constructor(private _service: service,) {
tempSubscription = _service.search$.subscribe(
(mission: any) => {
console.log("subscribed to search");
if (mission) {
//Code
}
});
this.subscriptions.push(tempSubscription)
tempSubscription = _service.someOtherObservable$((event)=>{
//Code.
});
this.subscriptions.push(tempSubscription)
}
ngOnDestroy(): void {
for (let sub of this.subscriptions) {
sub.unsubscribe();
}
}
如果我在订阅 $search 后删除 subscription.push(tempSubscription)
然后订阅工作。否则其中没有任何记录。此外,如果我采用不同的变量来存储两个可观察的输出,那么它也可以工作。
注意:相同的 observable 以类似的方式在其他组件中订阅,并且工作正常。通过将可观察对象推入数组然后取消订阅,我做错了什么?