low: proposal flow async and error with unhandled flow unsub
betula opened this issue · comments
const a = value(0);
const b = value(0);
const c = value(0);
// For a first error on next cases
a.flow.async(async (a) => {
const data = b.flow(() => {}).val; // Error here, necessary for using isolate here
}};
// Flow async proposal
const s = a.flow.async(async (a) => {
if (!a) return stoppable.stop();
return await load_subscriptions();
});
s.val // subscriptions or undefined
s.initialized.val
s.error.val
s.pending()
a.flow.async.debounce(300)
.pipe(
customDebounce,
async (a) => {
if (!a) return stoppable.stop();
const m = c.val; // Subscrible to m or not??
return await load_subscriptions(m);
}
); // readonly async flow
const all_ok = value.combine(a, s.initialized).select(([a, s]) => a && s) // or value.combine([a, s.initialized])
// Rename pool to asyncs)))
// Constructors
value.async(async (v) => {});
signal.async(async (v) => {});
a.flow.async(async (a) => {});
const m = a.flow.async(async (a) => {}).single();
const h = a.sub.async(reactionable, async (state, val) => {}); // h.pending.val
const h_2 = pool(async (a,b,c,d,e) => {
stoppable.stop();
});
// Syntax possibilities
a.async
.debounce(300)
.pipe(
customDebounce,
async (a) => {
if (!a) return stoppable.stop();
const m = c.val; // Subscrible to m or not?? (untrack inside pipe section... hmmmm)
return await load_subscriptions(m);
}
)
.flow(async (a) => {
return await load(a, b.val, c.val); // Depend on change any of that values
})
; // readonly async flow
// Pipe <> Flow same words for not obvious differences... hmm
const s = flow.async(async () => {
return await load(a.val, b.val, c.val);
});
// Syntax possibilities
const t = a.async
.debounce(300)
.flow.untrack(
customDebounce,
async (a) => {
if (!a) return stoppable.stop();
const m = c.val; // not subscribe to c
return await load_subscriptions(m);
}
)
.flow(async (a) => {
return await load(a, b.val, c.val); // subscribe to b and c
})
; // readonly async flow
t.val
t.ready.val
t.error.val
t.pending.val
// flow factory (only track, untrack unsupported)
const s = flow.async(async () => {
return await load(a.val, b.val, c.val);
});
const f_sync = flow(() => {
return sync_load(a.val, b.val, c.val);
});
// And pool
const p = pool(async (a,b,c,d,e) => {
stoppable.stop();
});
p.pending.val
Added to "the stream of conciseness 0.7+ roadmap"