Async generator components
Zolmeister opened this issue · comments
Zolmeister commented
Problem: After suspending to a promise, hooks can no longer be called. This is necessarily true because the stack is async.
Root = ->
useMemo -> 1
await Promise.resolve null
# TypeError: Cannot read property 'owner' of null
useMemo -> 2
h 'div', 'abc'
Proposal: Allow components to be async generators, where the final result is the tree.
Root = ->
useMemo -> 1
yield await Promise.resolve null
useMemo -> 2
h 'div', 'abc'
Currently async generator components render at each yield, but I think this version is more useful
Zolmeister commented
Turns out this already works
Root = ->
useMemo -> 1
yield await Promise.resolve null
useMemo -> 2
yield h 'div', 'abc'