顺序订阅两个独立的可观察对象

时间:2019-12-28 05:31:04

标签: angular7 rxjs-observables

我对可观察对象还很陌生,并且正在尝试使用@paulpdaniels提出的publish / connect.bind方法来依次订阅两个可观察对象,以回应类似的问题。我什至不确定该解决方案是否适用于我的解决方案。但是该方法似乎无法执行对我的第二个可观察对象的订阅。有关如何确保第二个可观察对象在第一个之后被预订的指导,因此不会为我的searchForm(可观察的2)设置值,因为尚未设置searchForm(可观察的1),因此不会出错。这是我的代码:

ngOnInit() {

  //First observable which assigns searchForm to one of two different types
  this.route.paramMap.pipe(switchMap((resp:ParamMap) => of(resp.get('searchState')))).subscribe(
    resp => {if (resp == null || resp == 'basic'){
      this.searchType = 'basic';
      this.searchForm = this.basicSearchForm;
      console.log('searchForm is: ', this.searchForm);
      } else {
      this.searchType = 'address';
      this.searchForm = this.distanceSearchForm;
      console.log('searchForm is: ', this.searchForm);
    }
  });

  //Second observable subscription (sets values for searchForm, which gets its fields upon subscribing //to the first observable):
  this.route.queryParams.subscribe(resp => {
    if(Object.keys(resp).length != 0){
      this.searchForm.setValue(resp);
    };
  });
}

0 个答案:

没有答案