Javascript角块?

Javascript角块?,javascript,angular,blocking,Javascript,Angular,Blocking,我有一个角度函数,它在初始URL中查找一个“list”参数,如果找到,它将出去获取信息。否则我想得到地理位置。如果URL参数存在,我不想获取地理位置。我是否使用了正确的术语 constructor(private router: Router, private activatedRoute: ActivatedRoute, private providerService: ProviderService) { } ngOnInit(): void { this.processURL

我有一个角度函数,它在初始URL中查找一个“list”参数,如果找到,它将出去获取信息。否则我想得到地理位置。如果URL参数存在,我不想获取地理位置。我是否使用了正确的术语

constructor(private router: Router, private activatedRoute: ActivatedRoute, private providerService: ProviderService) { }

  ngOnInit(): void {
    this.processURL();
    this.processGPS();
  }

  private processURL() {
    console.log('1a');

    this.activatedRoute.queryParams.forEach(item => {
      if (item['list']) {
        console.log('1b');
        this.providerService.setCurrentProvider(item['list']);
      }
    });
  }

  private processGPS() {
    console.log('2a');
    window.navigator.geolocation.getCurrentPosition(position => {
      this.providerService.findByGeo(position.coords).subscribe(providers => {
        if (providers.length > 0) {
          console.log('2b');
          this.providerService.setCurrentProvider(providers[0]);
        }
      },
        () => {
          console.log('GeoLocation Not available or disabled');
        }).unsubscribe();
    });
  }

未找到列表参数时,将processGPS移动到else:

ngOnInit(): void {
    this.processURL();
}

private processURL() {
    console.log('1a');

    this.activatedRoute.queryParams.subscribe(item => {
      if (item['list']) {
        console.log('1b');
        this.providerService.setCurrentProvider(item['list']);
      } else {
        this.processGPS();
      }
    });
}

未找到列表参数时,将processGPS移动到else:

ngOnInit(): void {
    this.processURL();
}

private processURL() {
    console.log('1a');

    this.activatedRoute.queryParams.subscribe(item => {
      if (item['list']) {
        console.log('1b');
        this.providerService.setCurrentProvider(item['list']);
      } else {
        this.processGPS();
      }
    });
}

queryParams
是可观察的,不是数组,所以您应该订阅它

我所做的:

  • 订阅
    this.activatedRoute.queryParams
  • 检查参数上是否存在list属性
    • 如果它确实存在,请调用一些服务
    • 否则,如果不存在,请使用GPS
ngOnInit(){
this.activatedRoute.queryParams.subscribe(参数=>{
如果(参数列表的类型!==“未定义”)
this.providerService.setCurrentProvider(params.list);
其他的
这个.processGPS();
});

}
queryParams
是可观察的,而不是数组,因此您应该订阅它

我所做的:

  • 订阅
    this.activatedRoute.queryParams
  • 检查参数上是否存在list属性
    • 如果它确实存在,请调用一些服务
    • 否则,如果不存在,请使用GPS
ngOnInit(){
this.activatedRoute.queryParams.subscribe(参数=>{
如果(参数列表的类型!==“未定义”)
this.providerService.setCurrentProvider(params.list);
其他的
这个.processGPS();
});
}