mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
8aff9a7a734a7713fbf283f38da9ec0f98c5aacc
This lets you pass Promises from server components to client components
and `use()` them there.
We still don't support Promises as children on the client, so we need to
support both. This will be a lot simpler when we remove the need to
encode children as lazy since we don't need the lazy encoding anymore
then.
I noticed that this test failed because we don't synchronously resolve
instrumented Promises if they're lazy. The second fix calls `.then()`
early to ensure that this lazy initialization can happen eagerly. ~It
felt silly to do this with an empty function or something, so I just did
the attachment of ping listeners early here. It's also a little silly
since they will ping the currently running render for no reason if it's
synchronously available.~ EDIT: That didn't work because a ping might
interrupt the current render. Probably need a bigger refactor.
We could add another extension but we've already taken a lot of
liberties with the Promise protocol. At least this is one that doesn't
need extension of the protocol as much. Any sub-class of promises could
do this.
DiffTrain build for [9d111ffdfb](https://github.com/facebook/react/commit/9d111ffdfbcfee4b348a3d49c16f02cb718c896f)
[View git log for this commit](https://github.com/facebook/react/commits/9d111ffdfbcfee4b348a3d49c16f02cb718c896f)
Please do not delete this branch
Languages
JavaScript
67.1%
TypeScript
29.4%
HTML
1.5%
CSS
1.1%
C++
0.6%
Other
0.2%