March 22, 2026
We had signals at home?!
We've had front end reactivity since 2018 – via Async Iterables
Dev claims “reactivity since 2018,” comments go feral over streams vs signals
TLDR: A developer says the web has had app auto‑update tech since 2018 via Async Iterables, sparking cheers and side‑eye. Commenters argue it misses instant “first value” behavior and still needs custom parts, igniting a streams‑vs‑signals brawl that questions years of framework churn and future standards.
A late‑night post just tossed a firecracker into Frontend Land: a dev says we’ve had instant, built‑in “reactivity” (apps updating themselves when data changes) since 2018 thanks to Async Iterables—think: a playlist that keeps getting new songs over time. The demo shows a to‑do item that first says “pending,” then updates to “success” or “failure,” and even chains with route changes using for‑await‑of. Bold claim, big vibes.
Cue the comment arena. The loudest pushback: where’s the first value for derived state? One engineer warns that, like “streams” in Dart/Flutter, you often wait a tick to get a value—bad news for instant UI. Another skeptic notes the code still relies on a custom State class and says, basically, this doesn’t prove reactivity is already built in. Meanwhile, the framework discourse goes nuclear: React went hooks, Vue went composition, Angular went RxJS then “signals,” Svelte went “runes,” and now there’s a TC39 Signals proposal with no consensus. The crowd’s split between “the Web had this all along” and “nice idea, but mind the potholes.”
The memes? “We have Signals at home,” “JavaScript Fatigue speedrun,” and the 100‑line challenge: “I can write signals in a snippet.” It’s equal parts nostalgia, tech history lesson, and popcorn‑worthy pedantry. Reactivity truthers vs. signal purists—place your bets.
Key Points
- •The article argues that JavaScript Async Iterables provide a native model for frontend reactivity since 2018.
- •In this model, the first yielded value is the initial state and subsequent yields represent state updates, consumed via for-await.
- •Code examples show async generators modeling fetch states and composing state by consuming another AsyncIterable (e.g., route params).
- •Upcoming iterator helpers are cited as a way to compose AsyncIterables for state composition.
- •Client-side frameworks have developed varied reactivity systems (e.g., useState, ref, RxJS, Signals), and a TC39 Signal proposal exists without consensus.