Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

166
Views
Programación síncrona similar en NodeJS / Express con Yield

Estoy teniendo dificultades con la operación asincrónica de nodo (proveniente de un fondo de PHP). Sé que puedes anidar devoluciones de llamadas, pero eso puede salirse de control muy rápido.

Aquí hay un ejemplo básico que quiero resolver de forma sincrónica (sé que podría ser simple de resolver de forma asíncrona para este ejemplo, pero necesito saber cómo hacerlo de forma sincrónica para proyectos más complicados).

Esta es una aplicación rápida en la que intento contar la cantidad de veces que se usó un cupón:

 var express = require('express'); var wrap = require('co-express'); app.post('/grab-valid-coupons', wrap(function* (req, res) { var validCoupons = []; console.log('grabbing coupons'); var coupons = yield db.collection('Coupons').find({}).toArray(); coupons.forEach(wrap(function* (coupon, index) { console.log(coupon.code, 'CODE'); var couponUse = 0; couponUse += yield db.collection('Rentals').find({coupon: coupon.code}).count(); couponUse += yield db.collection('Orders').find({coupon: coupon.code}).count(); console.log(couponUse); if(couponUse < coupon.uses) { validCoupons.push(coupon); } })); res.json(validCoupons); }));

El primer rendimiento funciona, pero la parte en la que intento obtener el recuento de todo hace que todo el servidor se cuelgue. ¿Algunas ideas?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

olvidó enviar los datos o llamar a continuación, res.send(validCoupons) al final de su función. Deberías hacerlo

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!