Daniela Stornelli
PreguntaUncaught (in promise) TypeError: Failed to execute ‘json’ on ‘Response’: body stream already read ???
Juan Castro
Dani, este error suele aparecer cuando se llama más de una vez al método .json para el parseo de la respuesta HTTP desde fetch: https://stackoverflow.com/questions/53511974/javascript-fetch-failed-to-execute-json-on-response-body-stream-is-locked
Si quieres, compártenos por fa tu código para ayudarte a intentarlo resolver. :D
Daniela Stornelli
Gracias! aca dejo mi codigo. No encontré una respuesta que resolviera mi problema usando async y await, y realmente no se como resolverlo…
`const API_URL_RANDOM = ‘https://api.thecatapi.com/v1/images/search?limit=4’; const API_URL_FAVORITES= ‘https://api.thecatapi.com/v1/favourites’; const API_REST = ‘api_key=live_LpjOdxs7nGuvpihAAaFFdie51sTU8WhFCUwJCa4vuvw7KZv6flSpL2Rt0zUhSQTr’; const spanError = document.getElementById(‘error’);
const btbRecargar = document.querySelector("#recargar");
async function loadRandomMichis() { const res = await fetch(API_URL_RANDOM); //await porque es un llamado asincrono. const data = await res.json();
if (res.status !== 200) { spanError.innerHTML = "Hubo un error: " + res.status; } else { const img1 = document.querySelector('#img1'); const img2 = document.querySelector('#img2'); const img3 = document.querySelector('#img3'); const img4 = document.querySelector('#img4'); img1.src = data[0].url; //La url de la imagen. img2.src = data[1].url; img3.src = data[2].url; img4.src = data[3].url; console.log('Random'); console.log(data); }
}
//función para cargar imagen favorita async function loadFavouritesMichis() { const res = await fetch(API_URL_FAVORITES);
if (res.status !== 200) { const error = await res.text() spanError.innerHTML="hubo un error: " + res.status } const data = await res.json(); console.log('Favoritos'); console.log(data);
} async function saveFavouriteMichis() { const res = await fetch(API_URL_FAVORITES, { method: ‘POST’, headers: { ‘Content-Type’: ‘application/json’, }, body: JSON.stringify({ image_id: ‘264’ }), }); const data = await res.json();
console.log('Save') console.log(res)
if (res.status !== 200) { const error = await res.text() spanError.innerHTML="hubo un error: " + res.status + data.message; } }
loadRandomMichis(); loadFavouritesMichis(); btbRecargar.addEventListener(‘click’, loadRandomMichis);`
Daniela Stornelli
Lo resolví!
