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

91
Views
¿Cómo hago que dos despachos en redux se ejecuten en orden?

Supongamos que tengo dos despachos que quiero disparar en orden llamados

 dispatch(action1()) dispatch(action2())

Action1 es un creador de acciones creado usando

 createAsyncThunk

método de redux/toolkit.

Por lo tanto, usa async... await en el proceso.

Action2 es un proceso síncrono.

yo quiero hacer

 `dispatch(action2())` run only after `action1()` has been dispatched.

¿Cómo puedo conseguir esto?

he intentado hacer

 dispatch(action1(), dispatch(action2())

pero descubrí que enviar dentro de un reductor es un antipatrón ya que los reductores son puros.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Ver Desenvolver acciones de resultados

Los procesadores pueden devolver un valor cuando se envían. Un caso de uso común es devolver una promesa del procesador thunk, enviar el procesador thunk desde un componente y luego esperar a que se resuelva la promesa antes de realizar un trabajo adicional:

Así que puedes hacer esto:

 dispatch(action1()).then(() => { dispatch(action2()); })
about 4 years ago · Juan Pablo Isaza Report

0

Una forma sencilla podría ser dejar que action1 envíe condicionalmente action2 donde la necesite:

 const action1 = createAsyncThunk( 'actions/1', async (args, thunkAPI) => { const response = await someApi.fetchStuff(args.id); if (args.condition) { thunkAPI.dispatch(action2()); } return response.data } );

Esto solo funciona si no depende de que el reductor haya actualizado el estado en ese punto (generalmente con este tipo de escenario se trata de que el trabajo asincrónico haya terminado).

Sin embargo, si también depende de la actualización de estado, intente el dispatch(action1()).then(...) responda a alguien más.

Otra opción es escribir un procesador "clásico" (sin usar createAsyncThunk ) que coordine la secuencia de action1 y action2.

Personalmente, prefiero la última opción, ya que los fragmentos más grandes se pueden componer muy bien de muchos fragmentos más pequeños.

En caso de que se lo pregunte, createAsyncThunk no está destinado a enviar otra acción al devolver su resultado, lo que también habría resuelto su problema: https://github.com/reduxjs/redux-toolkit/issues/773

about 4 years ago · Juan Pablo Isaza 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!