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

213
Vistas
¿Cómo usar "async" o "await" dentro del bucle for en mi código?

Estoy tratando de desarrollar una herramienta para desechar y publicar datos desde / hacia sitios web usando "titiritero", escribí dos módulos, uno para leer las URL del archivo JSON y tiene el bucle for que incluye la función del otro módulo que visita el sitio web y desechar los datos.

Cuando construí las funciones y ejecuté el código, por primera vez mi PC se bloqueó y no pude identificar el problema, hasta que encontré una publicación que explicaba sobre "async" y "await" en NodeJS, traté de entender cómo aplicarlo a mi código, pero no pude.

Así que estoy tratando exactamente de pasar por el bucle para visitar el sitio web, luego desecho los datos, después de terminar desde el primer elemento, debería ir al siguiente elemento del bucle en lugar de ejecutar todos los elementos a la vez, lo que hace que la PC colgar.

getUrlsAndVisitWebsite.js

 const puppeteer = require('puppeteer') const fs = require('fs'); var visitWebsite= require('/home/projtect1/visitWebsite.js'); async function getUrlsAndVisitWebsite(){ fs.readFile("/home/project1/urls.json", "utf8", (err, jsonString) => { if (err) { console.log("File read failed:", err); return; } var jsonOBj= JSON.parse(jsonString); for (let i = 0; i < 2; i++) { var postPath = JSON.parse(jsonOBj[i]).url; // here I'm using puppeteer to visit websites and scrab data visitWebsite(postPath) } }); } getUrlsAndVisitWebsite()

visitWebsite.js

 const puppeteer = require('puppeteer') var fs = require('fs'); async function visitWebsite(postPath){ const browser = await puppeteer.launch({ headless: false, waitUntil: 'networkidle2' }) const page = await browser.newPage() await page.setViewport({ width: 0, height: 0}); //Loading Cookie from file const cookiesString = await fs.readFileSync('./cookies.json'); const Writecookies = JSON.parse(cookiesString); await page.setCookie(...Writecookies); // GO to the target URL for post console.log(postPath) await page.goto(postPath) //Wait for the selector that list the elements await page.waitForSelector('#gridPostListing'); } module.exports=visitWebsite;
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Su función visitWebsite es asíncrona, debe esperarla en getUrlsAndVisitWebsite. Tal como está ahora, solo devuelve una promesa, por lo tanto, se cuelga.

Simplemente agregue esperar antes de su llamada visitWebsite.

about 4 years ago · Santiago Trujillo 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