Класс GuestPool

GuestPool на GitHub

Предназначен для подписки на отложенное значение не только патрона но и гостя

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

Пример 1.

import { GuestPool } from 'patron-oop';

class ValueAfterDelay {
    constructor(theValue, delay) {
        this.theValue = theValue;
        this.delay = delay;
        this.pool = new GuestPool();
    }

    value(guest) {
        this.pool.add(guest);
        setTimeout(() => {
            this.pool.give(this.theValue);
        }, this.delay);
    }
}

const fnGuest = (value) => {
    document.querySelector('.guest-result').textContent = value;
}
new ValueAfterDelay(42, 5000).value(fnGuest);

Результат 1.

Ждем значение через 5 секунд...
Смотрите также

PatronPool