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

430
Views
¿Cómo obtener resultados de Concurrent::Promise::all?

Usando conccurrent-ruby , ¿cómo puedo ejecutar un conjunto de promesas y luego obtener los resultados?

Aquí hay un ejemplo de lo que me gustaría poder hacer (La prueba pasa porque nunca llega al bloque 'entonces'.

 it "can aggregate the results" do Concurrent::Promise::all?( Concurrent::Promise.execute { 42 }, Concurrent::Promise.execute { 43 }, ).then do |result| binding.pry expect(result).to eq([42, 43]) end end
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Para ejecutar el .all? promete que necesita llamar a .execute y .wait , eso significa que se ejecutará y luego esperará hasta que el resultado esté listo, tenga en cuenta que la wait está bloqueando, lo que significa que bloqueará su código`. ex:

 Concurrent::Promise.all?( Concurrent::Promise.new { 42 }, Concurrent::Promise.new { 43 } ).then do |result| puts 'finished promises' end.execute.wait

Sin embargo, si desea obtener los resultados una vez finalizadas las promesas, puede utilizar el método .zip , por ejemplo:

 Concurrent::Promise.zip( Concurrent::Promise.execute { 42 }, Concurrent::Promise.execute { 43 } ).then do |result| expect(result).to eq([42, 43]) end.wait

Nota: ¿Hay algunas diferencias entre .zip y .all? consulte los documentos: https://www.rubydoc.info/gems/concurrent-ruby/Concurrent/Promise

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!