Класс GuestDisposable

GuestDisposable на GitHub

Предназначен для динамического создания гостя с функциональностью его удаления из пула патронов , на случай, если гость станет патроном

Полезно в случаях, когда гость сделал свою работу и должен быть удален из пула патронов, но в случае если гость стал патрном. У класса Patron есть метод disposed, который берется от гостя. В логике PatronPool после каждой передачи значения патрону идет проверка не нужно ли удалить этот патрон из пула вызовом метода disposed

Вместо класса GuestDisposable можно использовать функцию removePatronFromPools - для того чтобы удалить патрон из всех пулов. либо функцию isPatronInPools - проверяет есть ли патрон в каком-либо пуле

Пример 1.

import { SourceWithPool, Patron, GuestDisposable } from "patron-oop";

  const source = new SourceWithPool("Один");

  source.value(
    new Patron(
      new GuestDisposable(
        (value) => {
          document.querySelector(".guest-result").textContent = value;
        },
        (value) => {
          return value !== "Один";
        }
      )
    )
  );

  setTimeout(() => {
    source.give("Два");
  });

  setTimeout(() => {
    source.give("Три");
  }, 100);

Результат 1.

Нет значения
Смотрите также

Source Patron