Task

Queue actions with task, delay, and log updates.

Task action

Status: idle

Count:

PHP
<?php $count = state(0); $status = state('idle'); $log = state([]); $app = el('div', [attrs(['class' => 'container p-3'])], [ el('h1', [], [ text('Task action') ]), el('p', [], [ text(concat('Status: ', read($status))) ]), el('p', [], [ text(concat('Count: ', read($count))) ]), el('button', [ cls('btn btn-primary me-2'), on('click', task([ set($status, val('starting...'), true), push($log, concat('click #', read($count)), true), delay(300, [ set($status, val('incremented'), true), ]), inc($count, 1, true), set($status, val('idle'), true), ])) ], [ text('Run task') ]), el('ul', [cls('mt-3')], [ repeat(read($log), item(''), el('li', [], [ text(item('')) ])) ]), onMount([ task([ set($status, val('mounted'), true), push($log, val('mounted'), true), delay(200, [ set($status, val('idle'), true) ]), ]) ]) ]);