Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

190
Vistas
Javascript POST/GET Fetch request: necesita acceder a datos fuera de la solicitud

Estoy tratando de acceder a los datos devueltos dentro de mi solicitud POST, fuera de la solicitud, preferiblemente disponibles globalmente para poder acceder a ellos en otras funciones. Lo que realmente estoy tratando de hacer es acceder a datos JSON específicos y realizar cambios a través de otras funciones y solicitudes PUT/GET (estoy haciendo un juego de adivinanzas de línea de comando).

NOTA: He visto muchas de estas mismas preguntas aquí, pero no puedo entender cómo alguna respuesta se relaciona con mi código/ninguna de las respuestas es realmente lo que estoy buscando. Me gustaría saber qué paso me falta en mi propio código para ayudarme a lograr esto.

Aquí está mi código hasta ahora. Sé que estoy cerca, pero estoy atascado en este punto.

 const apiUrl = 'https://word-guessing-game.onrender.com' let jsondata = ""; async function getJson(url) { let response = await fetch(apiUrl, { method: 'POST', headers: { 'Content-Type': 'application/json', }, }); let data = await response.json() let gameId = data.game.id return gameId } async function main() { getJson(apiUrl) .then(data => console.log(data)); } main();

En este momento tengo esta configuración para simplemente devolver el game.id, porque eso es a lo que estoy tratando de acceder con una función separada/solicitud de obtención. ¡Cualquier ayuda es apreciada!

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esta es la forma en que puede usar sus datos asíncronos con otra función

 const apiUrl = 'https://word-guessing-game.onrender.com' async function getJson(url) { let response = await fetch(apiUrl, { method: 'POST', headers: { 'Content-Type': 'application/json', }, }); let data = await response.json() let gameId = data.game.id return gameId } function processData(data) { console.log(data) } async function main() { const data = await getJson(url) processData(data) } main().then();

Entonces, como probablemente sepa, el javascript se ejecuta de arriba hacia abajo, así que veamos qué sucede allí:

  1. Declaramos una apiUrl constante
  2. Declaramos una función asíncrona getJson
  3. Declaramos una función ordinaria processData
  4. Declaramos otra función asíncrona main
  5. Por fin no llamamos a nuestra función principal, que llama a getJson , donde pasamos nuestra apiUrl como parámetro. la tecla await nos permite "esperar" el resultado de la función para que podamos acceder a él con nuestra función processData

PD. .then() Utilicé porque generalmente la mayoría de las herramientas de inspección e IDE no están contentas cuando llamas a una función que devuelve una Promesa, que ignoras.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si está usando async/await , ¿por qué no usarlo así?

 let jsonData = await getJson(apiUrl) // jsonData will receive the value which getJson is returning // in this case, the game id.

Si debe usar la sintaxis .then , deberá pasar una devolución de llamada para actualizar el valor de jsonData

 // in getJson function pass another callback async function getJson(url, cb) { . . . let data = await response.json() let gameId = data.game.id cb(gameId);

Y tu función cb puede verse así

 function cb(data) { jsonData = data; // same json data declared at the top }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda