-
-
Notifications
You must be signed in to change notification settings - Fork 651
fetch: make readAllBytes sync #4349
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is no reason to change it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This allocates way less promises and I expect to improve performance.
I don't really understand how this work tho. What if part of the body is not available?
If body is null or invalid then it would break already in an earlier stage in the function which calls readAllBytes, because we call The only place we can error is when the |
LOL, I actually found a bug in the sri code. I was wondering why setting the rejection handler in readLoop is not working. |
What about if a large file is transmitted? Is fetch already buffering all of that in memory? |
Only if you use one of those methods from the bodyMixing, like For streams you have that logic directly in mainFetch called incrementalReadBody or so. There we use alot of magic like async generators. |
Because we cant access the ReadableStreamDefaultReader logic inside node core to provide our own reader with the specified logic as mentioned in the spec. Before readAllBytes is async, which is confusing because we provide two callbacks to it. Now it reads more natural for me.
Status