bigskysoftware / bigskysoftware/_hyperscript

Wait for <x> and <y>

Offen
#78 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
JavaScript
Sterne
3.8k
Forks
172
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

The `wait` syntax in hyperscript does a great job of enabling event controlled flow. However, it has trouble when waiting on more than one event at the same time. For example:

```
on closeModal(event)
add .closing to #modal
async do
if theURL is not null then
fetch theURL then
put it into #main.innerHTML
end
trigger fetchDone
end
wait for animationend
wait for fetchDone
remove #modal
end
```

This should work if `animationend` finishes before `fetchDone`, but it deadlocks if `fetchDone` completes first.

I think hyperscript would benefit from a `wait for x and y` syntax that is similar to `Promise.all()` that only returns after all of the events have triggered.

This might be generalized to other kinds of operations, such as `wait for any of x and y and z` but my first guess is that this would be less commonly useful.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne damit, die Hyperscript-Syntax `wait` und den im Issue beschriebenen ereignisgesteuerten Ablauf zu lokalisieren. Verwende das bereitgestellte Beispiel mit `animationend` und `fetchDone`, um das Verhalten zu untersuchen, wenn eines der beiden Ereignisse zuerst eintritt. Als erledigt gilt, wenn eine Form `wait for x and y` erst fortgesetzt wird, nachdem beide Ereignisse ausgelöst wurden, ohne zu blockieren, wenn sich ihre Reihenfolge ändert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
web-dev
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.