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

153
Vistas
obteniendo saltos de promesa en setInterval

Entonces, soy un estudiante de ciencias de la computación, soy un poco novato, me encontré con un problema que no pude resolver, así que quiero recuperar de mi bdd mongo cada x segundos y mostrar el resultado en el html. tengo una función llamada getItems que hace eso por mí, funciona perfectamente, por lo tanto, cuando trato de establecer llamarlo con setIntervel, ¡funciona! pero solo por 30 o 40 segundos y luego se rompe. este es mi codigo:

 setInterval(getItems , 1000 ) ; const getItems = async () => { const requestOptions = { method :'GET', }; const response = await fetch('/user/listed', requestOptions); const response2 = await fetch('/user/me', requestOptions); items = await response.json(); owned = await response2.json() ; if (response.ok && response2.ok) { // delete all the old values in listed var e =document.getElementById("listed") ; var child = e.lastElementChild ; while (child){ e.removeChild(child) ; child = e.lastElementChild ; } // delete all the old values in boughts var e2 =document.getElementById("bought") ; var child2 = e2.lastElementChild ; while (child2){ e2.removeChild(child2) ; child2 = e2.lastElementChild ; } // adding new values for (var key in items ){ const node = document.createElement("li"); const textnode = document.createTextNode(items[key].name + " : " + items[key].price); node.appendChild(textnode); node.setAttribute("id", items[key]._id) ; const buy = document.createElement("button") ; const buytext = document.createTextNode("buy") ; buy.setAttribute("id", items[key]._id) ; buy.setAttribute("onClick" , "buy(this.id)") buy.appendChild(buytext) ; node.appendChild(buy) ; document.getElementById("listed").appendChild(node); } // adding new values for (var o in owned.bought){ const node = document.createElement("li"); const textnode = document.createTextNode(owned.bought[o].name + " : " + owned.bought[o].price); node.appendChild(textnode); node.setAttribute("id", [o]._id) ; document.getElementById("bought").appendChild(node); } } }

y aquí hay una foto del error: ingrese la descripción de la imagen aquí

Gracias de antemano !

aquí está mi backend, las rutas usuario/listado y usuario/yo en realidad son:

 module.exports.me = async (req, res) => { const user = await User.findById(req.userId); console.log(user); console.log(req.userId); res.status(200).json(user); } module.exports.listed = async (req, res) => { const listed = await Listed.find(); console.log(listed); res.status(200).json(listed); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Tienes errores cors, ¿dijiste que tienes un servidor de nodo? hay un módulo cors, intente descargarlo e instalarlo en su servidor Node. Debe buscar en los encabezados OWASP y CSP y sus valores correspondientes

También es posible que deba agregar encabezados a sus solicitudes:

 require('dotenv').config(); app.use(cors()); app.use(middleware.setResponseHeaders) app.use((req, res, next) => { res.append('Access-Control-Allow-Origin', ['*']); res.append('X-Content-Type-Options', 'nosniff'); res.append( 'Strict-Transport-Security', 'max-age=31536000; includeSubDomains', ); res.append('Referrer-Policy', 'no-referrer'); res.append( 'Content-Security-Policy', 'default-src * data: blob: "self" wss:* ws:* https://*; script-src "unsafe-inline" "unsafe-eval" blob: data: "self"; style-src data: blob: "unsafe-inline" "self" https://*; connect-src data: blob: "unsafe- inline" "self" https://*;', ); res.append( 'Authorization', 'Bearer bjhf86uygbiluhgvyujkilu8y79iyuygvuyili8ygvuybkuliygvu jkun87yuhygvuyjk78ygyuiyg9v8iubyuo8pyhguyvhbjhgyibhkjlnihjpup8hguyhbjhiygyuhioguhgybukhigyhbjhoyiguybkjhlihouighbkjnihugyhvbjnkjihbjnbhjnhbjnuh=', ); next(); });
about 4 years ago · Juan Pablo Isaza 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