angular - Subscribe-metoden returnerar JSON-objekt som undefined


Idag hade jag ett mycket intressant fel i mitt Ionic 2-projekt. Jag har en Asp.net REST API. Jag gör ett anrop från leverantören till REST API:et för att hämta maskinerna. Problemet är att det mappas som JSON och när jag skriver ut dess JSON-format visar det JSON-objektarrayen. Men efter mappning när jag prenumererar på det, visas det som undefined.

return this.http.get('http://localhost:19496/api/user(1982)/Machines',config).map(res=>console.log(res.json()));

det visas som :

det är okej. Men när jag prenumererar på det, returnerar det data undefined:

subscribe(data=>{
    console.log(data)
  })

Jag har inte ändrat koden. Förra veckan fungerade det, men när jag kom tillbaka från semestern fungerade det inte.

Svar #1

Baserat på vad jag kan se i frågan är problemet att du inte returnerar något från map:

return this.http.get('...',config)
           .map(res=>console.log(res.json()));

Det är därför undefined returneras när du prenumererar på det. Försök genom att returnera svaret efter att ha skrivit ut det i konsolen:

return this.http.get('...',config)
           .map(res => res.json())
           .map(res => { 
             console.log(res);
             return res; // <- Here! :)
           });

Relaterade artiklar