如何在rxjs中停止/启动订阅?

时间:2017-05-10 12:30:44

标签: angular rxjs

在我的应用程序中,我有两种形式。每个都根据选择的下拉值显示给用户。

    <select (change)="change($event)">
            <option value="0">New</option>
            <option value="1">Existing</option>
    </select>

然后在.ts文件中:

     ngAfterViewInit() {
        this.existingForm.valueChanges.subscribe(p => {
        //code
        });
        this.newForm.valueChanges.subscribe(p => {
        //code
        });
     }

     change($event) {
       if ($event.target.value == 0) {
         //pause newForm subscription
         //start existing subscription
       }
       if ($event.target.value == 1) {
         //pause existing subscription
         //start newform subscription
       }
    }

1 个答案:

答案 0 :(得分:1)

调用subscribe()Observable将启动subscribe。 并按let subscription = this.existingForm.valueChanges.subscribe(...)保留订阅,以便subscription.unsubscribe()停止订阅。

  • 保持观察力

    让observable $ = this.existingForm.valueChanges;

  • 启动或重启

    让subscription = observable $ .subscribe();

  • 停止

    subscription.unsubscribe();