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

81
Views
Terminación de bucle antes de que se completen las funciones anidadas de mangosta

Todo, estoy escribiendo una función de publicación que incluye un bucle for con tres funciones de mangosta anidadas (findOne, findById & create). Sin embargo, parece como si las funciones no se estuvieran completando antes de pasar a la siguiente "i". Esto se evidencia por el hecho de que el archivo console.log de este código nunca es igual a 5. He investigado bastante y entiendo que el problema es que estas funciones de mangosta son asincrónicas, pero todavía tengo que encontrarme con el problema donde las personas tiene tres funciones anidadas como a continuación. ¿Hay alguna forma de permitir que las funciones finalicen antes de avanzar en el ciclo?

¡Gracias!

Por motivos de simplicidad, he puesto i < 5, aunque esto está representado por una variable en mi código. Además, supongamos que el precio es mayor que sellYesPricesMin.

 var quantity = 0; if(price >= sellYesPricesMin){ for (i = 0; i < 5; i ++){ if(price >= sellYesPricesMin && sellYesPricesMin>0){ Order.findOne({"yes_or_no":"NO", "buy_or_sell":"BUY","event.id":req.params.id},function(err, foundOrder){ if(err){ console.log(err); } else { User.findById(foundOrder.author.id, function(err, foundUser){ if(err){ console.log( err); } else { Share.create({}, function (err, newShare) { if (err){ console.log(err); quantity = quantity + 1; sharesCreated++; campground.shares.push(newShare); campground.save(); foundUser.save(); } }); } }); } }); } else { campground.buyYesPrices.push(parseFloat(Math.round(price * 100) / 100).toFixed(2)); req.user.save(); campground.save(); } req.user.save(); campground.save(); } console.log("QUANTITY: " + quantity); } else { // BLAH BLAH BLAH }
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

De acuerdo con el escenario anterior, lo que entiendo es que desea acceder a ciertas variables fuera de las funciones en un estado como si estas funciones se ejecutaran sincrónicamente.

Puede vincular esas variables a estas funciones y esta ejecución funcionará de la manera que desee que se ejecuten.

Estoy escribiendo un pequeño código que te ayudará a entender el concepto.

 for (var i = 0; i < 10; i++) { asynccall("Hello", function (others, err, data) { console.log("Others is same as i in synchrnous call " + others); }.bind(this, i)); }
over 4 years ago · Santiago Trujillo Report

0

Dado que todas estas llamadas son asincrónicas, básicamente lo hará todo a la vez y no esperará a que finalice ninguna sección. Por lo tanto, probablemente lo esté haciendo fuera de servicio. Para mí es más fácil pensar en ello como un montón de hilos diferentes. Básicamente, es posible que deba pause la parte asíncrona en esta sección si necesita que se ejecute en orden.

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!