curso-gratuito-svelte
curso-gratuito-svelte copied to clipboard
res.ok is not a function
El problema es que ok
es un atributo, no una función. Si se muestra el error en el template de Svelte indica de dónde viene el fallo.
{:catch error}
<strong>❌ {error.message}</strong>
{/await}
res.ok is not a function
El problema es que sustituyendo res.ok()
por res.ok
tampoco se soluciona, porque hay usar throw para lanzar el error. Si simplemente devolvemos el error, lo caza el siguiente then, y el error que muestra es res.json is not a function
Como no podemos usar throw
en una closure de una sola línea, al final me ha quedado así:
response = fetch(`https://www.omdbapi.com/?s=${value}&apikey=api_key`)
.then(res => {
if (!res.ok) {
throw new Error("Something bad happened with the fetching of movies")
}
else {
return res;
}
})
.then(res => res.json())
.then(apiResponse => apiResponse.Search || []);
Gracias por la solución aportada
es justo lo que me pasaba, sin embargo en el video de midu parece funcionar res.ok(); y no podía encontrar este metodo en MDN, baje este repo y despues de >npm install bajó las dependencias pero el >npm run dev: me sale un error y no deja compilar posiblemente cambiaron algo en el rollup........; de todos modos lo he echo desde las dependencias actuales y todo funciona correctamente..... Pero me había quedado justo en este apartado..... Muchas gracias por la solución.
Sin embargo todavía me queda la duda; de donde salió este método res.ok() que usa midu (cambio algo en los métodos de fetch desde hace un par de años?)
Y así?
response = fetch(`https://www.omdbapi.com/?s=${value}&apikey=api_key`)
.then(res => res.ok ? res : new Error('Something bad happened with the fetching of movies'))
.then(res => res.json())
.then(apiResponse => apiResponse.Search || []);