import { isFilled, Message, MessageType, Primitive } from "silentium"; /** * Defer one source after another, gives values Of baseSrc only when triggerSrc responds * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred */ export function Deferred( $base: MessageType, $trigger: MessageType, ) { return Message(function DeferredImpl(r) { const base = Primitive($base); $trigger.then(function deferredTriggerSub() { const value = base.primitive(); if (isFilled(value)) { r(value); } }); }); }