When you say "yield", you're talking about render functions throwing a Promise, right? Is there another kind of yield that arbitrary JS code people write in components can do that I'm missing?
(And you don’t throw a promise, you return and reject it)
The issue at hand is fully synchronous render functions that, e.g., go through a giant list of objects and call a bunch of other render functions on each one synchronously.
This change allows that one function to finish, and interaction to continue before all the children render.
You mean returning unresolved promises? Or returning rejected promises? Or just throwing an error?
React will catch promises thrown during rendering, and treat that as a request to "suspend" the component and come back to it later once the promise has resolved.