Иногда нам нужно контроллировать не значение, которое приходит гостю, а процесс передачи значения, например если мы хотим применить к гостю функцию debounce или функцию throttle, чтобы снизить количество срабатываний логики гостя.
Пример 1.
import { Guest, GuestExecutorApplied, sourceOf } from "patron-oop";
const guest = new Guest((value) => {
document.querySelector(
".guest-result"
).textContent = `value is ${value}`;
});
sourceOf(40).value(
new GuestExecutorApplied(guest, (guestFn) => {
return v => {
setTimeout(() => {
guestFn(v);
}, 5000)
}
})
);
Результат 1.