const v = value(0);
const s = signal(0);
// wait.all([v, s]) - it is a ready (trigger)
await wait.all([v, s]).promise
await wait.once([v, s]).promise
wait(v) // similar to signal.trigger.from(v) or v.to.signal.trigger()
const k = signal(0);
const m = value(0);
v.flow.wait(m)
.flow.wait.all(k, m) // or synonim to .flow.wait.all([k, m]) -- think about
.flow.wait.race(k, m)
.to((v) => console.log(v));
const k = signal(0);
const m = value(0);
v.flow.wait(m, (v_val, m_val) => return v_val + m_val)
.flow.wait.all([k, m], (v_val, [k_val, m_val]) => return v_val + k_val + m_val) // or stop of course (maybe I can get resolve???)
.flow.wait.race([k, m], (v_val, [k_val, m_val], resolve, v_val_prev) => {});
.to((v) => console.log(v));