可观察的不订阅

时间:2018-07-10 06:30:33

标签: angular angular2-observables angular-observable

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

component1.ts

this._service.searchText(result);

service.ts

    private searchSubject= new Subject<any>();

    searchText(mission: any) {
        this.searchSubject.next(mission);
  }

  search$ = this.searchSubject.asObservable();

component2.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),则订阅工作。否则,其中没有任何记录。另外,如果我将不同的变量用于存储两个可观察到的输出,那么它也可以工作。

注意:在其他组件中以相同的方式订阅了相同的可观察对象,并且工作正常。 通过将可观察变量推入数组然后取消订阅,我在做什么错了?

0 个答案:

没有答案
相关问题