0

我已经使用了受下一个可观察的行为。

组件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 以类似的方式在其他组件中订阅,并且工作正常。通过将可观察对象推入数组然后取消订阅,我做错了什么?

4

0 回答 0