Tratando de resolver mi problema, planteé una pregunta diferente que se cerró como un duplicado a pesar de que dije que había leído las otras respuestas y todavía estaba luchando por saber qué hacer. Se proporcionó una respuesta de que no podía ir a trabajar, razón por la cual ahora estoy preguntando esto.
Pregunta original: devolver el valor de una llamada API axios asíncrona a una variable
Básicamente, estoy tratando de asignar una variable después de que obtiene los datos de una función asíncrona y simplemente no sé cómo hacerlo.
Me dijeron que simplemente podía usar una espera de nivel superior, pero...
let myObject = await getSelfLink(); ^^^^^ SyntaxError: await is only valid in async functions and the top level bodies of modulesLuego me dijeron que esto se debía a que estoy usando una versión anterior de nodo, pero...
$ node -v v16.8.0Este es mi archivo .js completo:
const http = require('http'); const axios = require('axios').default; const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end(screenData); }); server.listen(port, hostname, () => { //console.log(`Server running at http://${hostname}:${port}/`); }); const queryData = '123456'; const getLink = async () => { try { const resp = await axios.get(`https://www.apisite.com/{queryData}`); return resp.data; } catch (err) { console.error(err); } }; let myObject = await getLink(); /* (async () => { let myObject = await getSelfLink(); })(); */ console.log(myObject); (Aparte, si comento la línea let myObject y elimino el comentario del bloque de función anónimo final que también me aconsejaron usar, solo afirma que la variable myObject no existe y si se inicializa primero con let myObject = '' it simplemente devuelve una línea vacía en la consola)