Мне нужно передать идентификатор, полученный из вызова api, для вызова другого вызова api

#javascript #angular #ionic-framework

#javascript #angular #ionic-framework

Вопрос:

Мне нужно передать идентификатор, полученный из вызова api, для вызова другого вызова api, не могу заставить его работать! кто-нибудь может помочь?

Второй api, который будет возвращать и вызывать image, не работает и отображается серым цветом в vs code если кто-нибудь может помочь с примером, я был бы признателен

 currentResult: any;
  

     getData(){
       this.showLoading();
       const headers = {
         "x-api-key":'',
        'Content-Type': 'application/json',
        "Access-Control-Allow-Origin":"*",
        "x-requested-with": "xmlhttprequest",
        /* 'Authorization': `Bearer ${this.sygicBearerToken}` */
      }
        return this.http.get(
          this.ProxyUrl1 'https://api.sygictravelapi.com/1.2/en/places/list?parents=city:2amp;categories=discoveringamp;limit=10', { headers: headers },
          )
        .pipe(tap (value => {
          this.loadingController.dismiss();
            console.log(value);
          }))
          
        
         this.http.get(
          this.ProxyUrl1 'https://api.sygictravelapi.com/1.2/en/places/{id}/media',{ headers: headers},)
        .pipe(tap (value => {
          this.loadingController.dismiss();
          console.log(value);
        })
        );
      }
  

Ответ №1:

Поскольку у вас есть оператор return с первым this.http.get , что-либо после оператора return выполняться не будет, поэтому оно отображается серым цветом.

Ответ №2:

Во-первых: второй вызов API выделен серым цветом, потому что он записан после return вызова.

чтобы вызвать дополнительный вызов API, используя результат первого вызова, вы можете использовать RXJS switchMap , это поможет вам получать последовательные запросы, один за другим.

для примера exmaple:

   get data() {
    return this.http.get('http://firstAPI').pipe(
      switchMap(id => this.http.get(`http://secondAPI/${id}`))
    );
  }
  

результаты первого вызова API «id» передаются второму http-вызову.

подробнее: RXJS switchMap