Как мне дождаться параметров перед загрузкой данных? - PullRequest
1 голос
/ 20 июня 2020

У меня есть приложение, в котором нужно загрузить два типа данных (данные A, данные B). Есть три варианта, в которых я хочу отображать данные.

Если параметр A -> загрузить данные A

если параметр B -> загрузить данные B

если нет параметра -> загрузить данные A

У меня есть две функции AssessmentParameters (), которая вызывает executeQueryParams ()

  accessParameters(): void {
    this.route.queryParamMap.subscribe(params => {
      const queryStrings: any = this.route.queryParamMap;
      this.executeQueryParams(queryStrings.source.value);
    });
  }

async executeQueryParams(queryStrings): Promise<any> {
    const queries = Object.entries(queryStrings);
    for (const q of queries) {
      switch (q[0]) {
        case 'vendors':
          this.vendorTerm = q[1];
          if ( this.vendorsLoaded == false ) this.loadVendorData();
          break;
        case 'search':
          this.searchTerm = q[1];
          console.log("in executeQueryParams() for search");
          this.loadSearchData(); 
          break;
      }
      this.parametersLoaded = true;
    }
    return;
  }

Если я загружаю accessParameters () в ngOnInit или в конструктор, кажется, что он загружается дважды. Первоначально ответ, как будто параметров нет, даже если он есть, а затем второй раз обработка параметров.

Если есть параметры, все работает как положено. Однако, если у меня нет параметра, он не загружает никаких данных. ЕСЛИ, я помещаю любой лог c, который загружает данные, если параметры не найдены, чем он всегда загружает эти данные, независимо от того, есть ли параметры или нет.

Я бы хотел НЕ загружать accessParameter (), пока система не будет готова к обработке параметров. ngAfterViewInit () не работал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...