_hyperscript icon indicating copy to clipboard operation
_hyperscript copied to clipboard

docs for `wait` command include invalid syntax

Open CharlesTaylor7 opened this issue 1 year ago • 3 comments

Problem

The documentation for the wait command advertises syntax that doesn't actually parse.

On this page of the docs: https://hyperscript.org/commands/wait/#description

This snippet:

wait for load or 1s
if the result is not an Event
  throw 'Took too long to load.'
end

Workaround

The comparison the result is not an Event, fails to parse, but replacing the an with an a makes it hunky dory.

Potential Fix

Either we can (1) update the docs, or (2) update the parser to allow the construct of is not an Event. I personally favor extending the parser to make this work.

Error

Screen Shot 2024-02-09 at 6 45 14 PM

Stacktrace:

    at a.raiseParseError (http://unpkg.com/[email protected]:1:12649)
    at i.raiseError (http://unpkg.com/[email protected]:1:6620)
    at i.requireToken (http://unpkg.com/[email protected]:1:7520)
    at http://unpkg.com/[email protected]:1:71097

CharlesTaylor7 avatar Feb 09 '24 23:02 CharlesTaylor7

Apart from the parser problem mentioned above, I tried implementing a wait with an event or a duration like in the example (the only difference is that I'm doing it from a function in a ".hs" file and not directly on the HTML element), but the script results in a deadlock, waiting forever for the event to occur. The duration is never considered. If I use the duration alone, there is no problem. Is anyone else having the same issue?

EDIT: To add a nuance to what I'm saying, the code above is working except if we start to use the trigger and the from clause of the wait command like this:

<button _="on click put 'Started...' into the next <output/>
	set continuer to the next <button/>
	wait for a continue from continuer or 3s   -- wait for a continue event...
	if the result's type is 'continue'
		put 'Finished...' into the next <output/>
	otherwise
		put 'Timed Out...' into the next <output/>
	end
	wait 2s
	put '--' into the next <output/>">
Start
</button>
<button _="on click trigger continue">
      Continue
</button>
<output>--</output>

Maybe I misunderstood the way it works. If someone can help on this I will be very grateful. Thanks.

SennaSanzo avatar May 30 '24 07:05 SennaSanzo

I had a similar issue were the syntax wait for <event> from <source> or <time expression> did not work, changing the order of the commands to wait for <event> or <time expression> from <source> fixed it for me.

I don't know if this would be considered a bug or just the documentation being misleading.

kakuche avatar Aug 12 '24 08:08 kakuche