Saltar al contenido

Javascript Fetch API: cómo guardar la salida en una variable como un objeto (no la promesa)

Mantén la atención ya que en este enunciado vas a hallar la respuesta que buscas.

Solución:

para un moderno asíncrono/espera enfoque consulte la respuesta de @PrathameshMore a continuación


.json() es un método asíncrono (devuelve una Promesa en sí), por lo que debe asignar el valor analizado en el siguiente .then()

var obj;

fetch('https://jsonplaceholder.typicode.com/posts/1')
  .then(res => res.json())
  .then(data => obj = data)
  .then(() => console.log(obj))

En lugar de almacenar en una variable, cree una función que devuelva datos y luego guárdelos en una variable. Por lo tanto, puede acceder a todo su archivo.

async fetchExam(id) 
        try 
            const response = await fetch(`/api/exams/$id`, 
                method: 'GET',
                credentials: 'same-origin'
            );
            const exam = await response.json();
            return exam;
         catch (error) 
            console.error(error);
        
    

Luego llame a esa función para obtener datos

async renderExam(id) 
        const exam = await fetchExam(id);
        console.log(exam);

Actualizar

Con la versión actual de Node.js v14.3.0, admite async-await de nivel superior

import axios from 'axios';

const response = await axios('https://quote-garden.herokuapp.com/api/v2/quotes/random');
console.log(response.data);

Ejecutando este archivo usando node --harmony-top-level-await top-level-async-await.js

Producción

producción

Más detalles: https://medium.com/@pprathameshmore/top-level-await-support-in-node-js-v14-3-0-8af4f4a4d478

Si te animas, tienes la opción de dejar un post acerca de qué le añadirías a esta reseña.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *