file_upload demo: yield write() cb in body_producer #2149
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The documentation for
tornado.httpclient.HTTPRequest
says:In the simpler example in this demo,
raw_producer()
, there are no yields (or awaits) at all. It doesn't make much sense to use abody_producer
callback if it generates and writes the whole body all at once without ever yielding, you might as well have just generated the whole body up front. In the more complex example,multipart_producer()
, it looks likeyield gen.moment
was thrown in to allow some of the body to be sent before more of the body is produced, but that seems less elegant than just yieldingwrite()
.It's possible I just don't understand the nuances, so consider this half-question half-proposal :)