#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