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
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.