Yeah, it's really annoying that if you want to introduce some async behaviour in a function, you end up having to deal with it at all the call sites
In the intro section I walk through adding a fetch to some code that jams text into a button and you can see how you don't end up having to change your code to do it: you just write the normal linear code with a fetch command in it:
<button class='btn primary' _="on click fetch /clickedMessage then transition opacity to 0
put the result into me then transition opacity to 1
wait 2s then transition opacity to 0
put 'Click Me!' into me then transition opacity to 1">
Click Me!
</button>
The fetch, wait and transition commands are asynchronous (in javascript terms) but to hyperscript it's all just linear code.
In the intro section I walk through adding a fetch to some code that jams text into a button and you can see how you don't end up having to change your code to do it: you just write the normal linear code with a fetch command in it:
https://hyperscript.org/docs/#introduction
The fetch, wait and transition commands are asynchronous (in javascript terms) but to hyperscript it's all just linear code.