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

253
Visualizações
HTTP obtener información EN ORDEN y agregar a la matriz en el orden especificado

Lo he probado todo. Quiero obtener de mi servidor algunos datos en un bucle y agregar las respuestas en una matriz en el orden en que ejecuto el bucle for.

Estoy pensando que la respuesta es recursiva, pero lo intenté varias veces y fallé.

Estoy usando AXIOS:

 let currentPhraseWordAssign = []; function addPartOfSpeechAndWordPhrasesToFullScript () { assignPartOfSpeechAndAddToPhraseArray(["phrase", "run"]).then(() => {console.log(currentPhraseWordAssign)}); } async function assignPartOfSpeechAndAddToPhraseArray (phrase) { if(currentPhraseWordAssign.length >= phrase.length) { console.log(currentPhraseWordAssign); currentPhraseWordAssign = []; return; } let word = phrase[currentPhraseWordAssign.length]; axios({ method: 'get', url: `http://localhost:9200/english_minus_verbs/_search`, headers: { 'Content-Type': 'application/json' }, data: { _source: ["part_of_speech"], query: { term: { word: word, } } } }).then((r) => { try { currentPhraseWordAssign.push({word: word, partOfSpeech: r.data.hits.hits[0]._source.part_of_speech}); }catch (e) { currentPhraseWordAssign.push({word: word, partOfSpeech: 'verb'}); } }).then(()=>{ assignPartOfSpeechAndAddToPhraseArray(phrase); }); }

Tal vez ese código esté completamente equivocado, de todos modos es como la séptima vez que lo escribo... Probé con promesas, async/await, sync y ahora recursividad...

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede ejecutar las llamadas axios en secuencia (una tras otra) de esta manera:

 async function lookupWords(arrayOfWords) { let currentPhraseWordAssign = []; for (let word of arrayOfWords) { const data = await axios({ method: 'get', url: `http://localhost:9200/english_minus_verbs/_search`, headers: { 'Content-Type': 'application/json' }, data: { _source: ["part_of_speech"], query: { term: { word: word, } } } }); currentPhraseWordAssign.push({word: word, partOfSpeech: r.data.hits.hits[0]._source.part_of_speech}); } return currentPhraseWordAssign; }

O bien, puede ejecutarlos en paralelo y recopilar los resultados en orden:

 function lookupWords(arrayOfWords) { return Promise.all(arrayOfWords.map(word => { return axios({ method: 'get', url: `http://localhost:9200/english_minus_verbs/_search`, headers: { 'Content-Type': 'application/json' }, data: { _source: ["part_of_speech"], query: { term: { word: word, } } } }).then(r => { return {word: word, partOfSpeech: r.data.hits.hits[0]._source.part_of_speech}; }); })); }

Si los ejecuta en paralelo (lo que puede terminar antes), debe asegurarse de que el servidor de destino aceptará tantas solicitudes simultáneas como su matriz sea larga. Algunos servidores limitarán o rechazarán demasiadas solicitudes simultáneas. Para ejecutar semi-en-paralelo donde tiene N solicitudes en curso al mismo tiempo (cómo procesaría una gran matriz en paralelo sin demasiadas solicitudes en curso a la vez), usaría algo como mapConcurrent() para controlar la ejecución .

about 4 years ago · Juan Pablo Isaza 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