Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

406
Visualizações
SyntaxError: palabra reservada inesperada "esperar", node.js es la versión correcta

Estoy tratando de ejecutar una función de forma asíncrona 20 veces. Tengo la definición de la función:

 import axios from 'axios'; async function updateUser (url, user) { return new Promise((resolve, reject) => { axios.put(url, JSON.stringify(user)) .then(response => { //Folio returned code 204 console.log('The user has been updated'); resolve(response.data); }).catch((err) => { //Folio returned error console.error(`Error Text: ${err.response.data}`); console.error(`Error Code: ${err}`); }); }); }; export {updateUser};

Luego, intento recorrer a los usuarios en un JSON externo y actualizarlos en mi sistema 20 a la vez:

 import {updateUser} from './updateUser.js'; import usersjson from './jsons/users.json'; let promises=[]; if (usersjson.users.length) { try { for (const user of usersjson.users) { update = new promise ((resolve,reject) => { updateUser(url, user) .then((list) => {resolve(list)}) .catch((error)=>{reject(error)}) }); promises.push(update); if (promises.length = 20) { await Promise.all(promises) .then((responses)=> { console.log(responses); promises=[]; }).catch((err)=> { console.log(err); }); } } } catch(err)=> { console.log(err); } }

Sin embargo, recibo un mensaje de error en la consola:

 await Promise.all(promises) ^^^^^ SyntaxError: Unexpected reserved word

La versión de mi nodo es 12.19.0 (según las preguntas anteriores, parece que tiene que ser al menos 10, por lo que ese no debería ser el problema).

Cuando ejecuto la función sin esperar, funcionan correctamente (es decir, los usuarios se actualizan en mi sistema). También parece que el ciclo for es asíncrono por sí mismo, pero me temo que si hay demasiadas llamadas simultáneamente, mi sistema bloqueará la API, así que quiero hacer de 20 a 50 llamadas a la vez, como máximo.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Para usar await , debe declarar la función en la que está poniendo await como asíncrono

Por ejemplo:

 const functionReturningPromise = (input) => { return new Promise((resolve, reject) => { if (!input) { return reject(); } return resolve(); }); } const functionAwaitingPromise = async () => { for (let i = 0; i < 20; i +=1) { try { await functionReturningPromise(i); console.log(i); } catch (error) { console.log(error); } } }

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda