Estoy usando middleware en redux para alguna ejecución de lógica asíncrona. Mi pregunta es qué sucede cuando el middleware procesa una acción y se envía otra acción antes de que se complete la primera, qué sucederá en este caso, si la acción se detendrá hasta que el middleware complete el procesamiento o si eso action pasará el middleware que también comenzará a ejecutarse para esta acción (junto con la primera).
Soy un principiante en reaccionar y reducir y no sé si la respuesta debería ser obvia, ya que no lo es para mí.
TLDR: No puede suceder porque JS es un lenguaje de sincronización. Opera usando bucle de eventos y cola de tareas. Cada tarea asíncrona (es decir, recibir una respuesta de búsqueda o un detector de eventos activado por el usuario) se coloca en una cola y se ejecuta una por una. Entonces, cuando se ejecuta alguna tarea, otra esperará en la cola.
También tenga en cuenta que la función asíncrona es más de una tarea. Cada await indica una nueva tarea.
Hay muchas explicaciones de este modelo en Internet mediante palabras clave: "JS event loop" 1 , 2