Ir al contenido

Widget.queue

Widget.queue.push(task, options?): Promise<boolean>
Widget.queue.clear(): void

Pone una tarea en la cola. Las tareas salen de una en una, así que dos eventos seguidos no se pisan.

Widget.on("Twitch.Follow", ({ user }) => {
Widget.queue.push(() => {
Widget.dom.text(banner, Widget.t("thanks", { name: user }));
banner.classList.add("visible");
return () => banner.classList.remove("visible");
}, { duration: 6 });
});
  • Si la tarea devuelve una función, se llama al acabar su duración: ahí se quita lo que se puso.
  • options.duration: segundos que dura (por defecto, manifest.queue.durationSeconds, que son 5).
  • options.priority: con prioridad pasa delante de las de menos.
  • options.group: al empezar, se pliegan en esta tarea las pendientes de su grupo, y recibe cuántas en folded.
  • La tarea recibe { folded, signal }. signal es un AbortSignal: míralo tras cada espera, antes de pintar.
  • Una tarea dura como mucho manifest.queue.taskLimitSeconds (90 s). Con la cola llena (manifest.queue.maxPending, 50) se descarta lo de menos prioridad.
  • El resultado es true si se mostró y false si se descartó, se plegó o se vació la cola.

Vacía la cola y termina la tarea que se está viendo: aborta su signal y su función final corre igual.