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

109
Vistas
No se puede restablecer la matriz en la función asíncrona de Node.js a pesar de usar las devoluciones de llamada

Por lo tanto, estoy tratando de crear una API básica de chatarra web y estoy usando una función común PullArticle() con un bucle anidado para recopilar artículos con palabras clave (diferentes conjuntos de artículos y diferentes conjuntos de palabras clave) según la solicitud GET que envíe.

Necesito restablecer la variable de devolución de llamada "artículo" entre las solicitudes GET para mantener los datos separados, pero solo agrega llamadas anteriores a cada solicitud GET que puede duplicar datos si llamo a la misma solicitud dos veces.

Intenté usar una función de devolución de llamada y anteriormente una función de promesa siguiendo el consejo de StackOverFlow, ya que tenía la impresión de que la función Topic.forEach se ejecutaba de forma asincrónica, lo que provocaba que el "artículo" devuelto simplemente regresara vacío; sin embargo, no he podido hacer que funcione sin importar qué, y esperaba que alguien pudiera señalar lo que estoy haciendo mal aquí.

 var article = [] function PullArticle (Topic, myCallback) { article =[] // IF I LEAVE THIS RESET OUT ARRAY RETURNS EMPTY :( Topic.forEach(TopicLoop => { newspapers.forEach(newspapers =>{ axios.get(newspapers.address) // pulling html .then((response)=>{ const html = response.data const $ = cheerio.load(html) //allows to pickout elements $(`a:contains(${TopicLoop})`,html).each(function () { const title = $(this).text() const url = $(this).attr('href') article.push ({ title, url: newspapers.base + url, source: newspapers.name, }) }) }) }) }) let sendback = article myCallback(sendback) }

En el mismo archivo hago una solicitud de obtención con

 app.get('/TopicMatrix1',(req,res) =>{ PullArticle( Topic1, myDisplayer) function myDisplayer (PrintArticle){ res.json(PrintArticle) } }) app.get('/SomeOtherTopic',(req,res) =>{ PullArticle() etc }

Además, ¿alguien sabe por qué no puedo hacer la función myDisplayer(), que imprime res.json una función común que se encuentra fuera de la solicitud GET, por lo que las solicitudes GET separadas pueden llamarla?

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