queue

Planificador de Cola

Firma

const queue: any;

Descripción

Coloca cada tarea en una cola, en lugar de ejecutarla inmediatamene.

Cuando se utiliza el Planificador queue con un delay, este se comporta igual que el Planificador async.

Si se utiliza sin un delay, planifica cada tarea proporcionada síncronamente - la ejecuta justo en el momento en el que es planificado. Sin embargo, al ser llamado recursivamente, es decir, desde el interior de la tarea planificada, se planifica otra tarea con el Planificador queue. En lugar de ejecutar dicha tarea inmediatamente, será colocada en una cola y esperará a que la tarea actual se termine.

Esto quiere decir que cuando se planifica una determinada tarea con el Planificador queue, se puede asegurar que dicha tarea terminará antes de que comience cualquier otra tarea planificada con dicho Planificador.

Ejemplos

Ejemplos de la documentación oficial

Primero, planificar recursivamente. Después, hacer algo

import { queueScheduler } from "rxjs";

queueScheduler.schedule(() => {
  queueScheduler.schedule(() => console.log("Segundo")); // No ocurrirá ahora, será colocado en una cola

  console.log("Primero");
});

// Salida:
// "Primero"
// "Segundo"

Replanificarse a sí mismo recursivamente

import { queueScheduler } from "rxjs";

queueScheduler.schedule(
  function (state) {
    if (state !== 0) {
      console.log("Antes", state);
      this.schedule(state - 1); // this` referencia a la Action que se esté ejecutando en el momento,
      // que se replanifica con un nuevo estado y delay
      console.log("Después", state);
    }
  },
  0,
  3
);

// En un Planificador que se ejecuta recursivamente, cabe esperar:
// "Antes", 3
// "Antes", 2
// "Antes", 1
// "Después", 1
// "Después", 2
// "Después", 3

// Pero con queue se recibe la siguiente salida:
// "Antes", 3
// "Después", 3
// "Antes", 2
// "Después", 2
// "Antes", 1
// "Después", 1

Recursos adicionales

Documentación oficial en inglés

Last updated