Tengo información en formato JSON obtenida de mi API, ahora quiero consolar. Registrar un objeto específico de él, lo he intentado de varias maneras, pero no estoy definido o todo el texto JSON está impreso El código que tengo ahora :
const api_url = 'http://127.0.0.1:8000/main/'; async function getapi(url) { const response = await fetch(url); data = await response.json(); return data; } getapi(api_url); var results = getapi(api_url); console.log(results);Acabo de empezar a trabajar con apis y async js. Me encantaría recibir ayuda.
console.log se ejecuta en tiempo de compilación, por lo que para manejar una función sincrónica, debe hacer algo como:
const api_url = 'http://127.0.0.1:8000/main/'; async function getapi(url) { const response = await fetch(url); data = await response.json(); return data; } getapi(api_url).then(res => console.log(res)); then le dice al compilador que espere a que la función async devuelva un valor, de manera similar a como await en la función espera que la respuesta regrese del servidor.
Las funciones async siempre devolverán una promesa. fetch devuelve una promesa. Incluso .json() devolverá uno. Así que simplemente devuelva los datos analizados de la función, await eso y luego registre los datos.
Aquí está la documentación útil de MDN .
const api_url = 'http://127.0.0.1:8000/main/'; async function getapi(url) { const response = await fetch(url); return response.json(); } async function main() { const data = await getapi(api_url); console.log(data); } main();