angular - Data hämtas inte när jag skickar två parallella http-förfrågningar


I Angular 2 använder jag flera tjänster men jag kan inte få data från första API:et i subscribe-funktionen för det andra API:et, så vänligen föreslå det lämpliga svaret.

Svar #1

Det är så enkelt som 2 asynkrona HTTP-förfrågningar. När den första förfrågan startar, innan den får ett svar, startar den den andra.

I Angular händer det på samma sätt. För att undvika denna situation introducerade Angular ForkJoin:

Fork-join används för att skapa flera HTTP-förfrågningar samtidigt och efter att ha fått ett svar från alla dem kallar det en slutlig subscribe-metod.

    Observable.forkJoin(

    this.http.post(glob.BASE_API_URL_HOTEL + "hotel/getRoomType?hotelCode=" + this.hotel,{}).map(res => res.json()),

    this.http.get(glob.BASE_API_URL_HOTEL + "hotel/getBedType").map(res => res.json())

    ).subscribe((data)=>{



    this.roomType = data[0].data;
    this.getBedType = data[1].data;
}

Här initieras två förfrågningar samtidigt och i subscribe-callbacken får du en lista med alla svar.