Ticket #5061 enhancement new
Replace gatheredResults() with something nicer that doesn't use DeferredList
| Reported by: | djfroofy | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | core | Keywords: | |
| Cc: | andrew@… | Branch: | |
| Author: | Launchpad Bug: |
Description
gatherResults() is a leaky abstraction over DeferredList; it doesn't expose some useful things like consumeErrors making it hard to avoid unhandled errors without some weird code acrobatics. There is also some agreement (#4977) that DeferredList isn't great since it inherits from Deferred and probably would be better replaced with a functional or compositional approach; i.e. gatherResults() and DeferredList could eventually be deprecated.
I propose to add a new function to twisted.internet.defer-- gatherDeferreds(). This function would take the following arguments: deferredList (a list of Deferred objects), fireOnOneCallback (same type and semantics as for DeferredList), fireOnOneErrback (again same), consumerErrors (again same).
Eventually DeferredList and gatherResults() could be deprecated - but I think this could be a separate concern/ticket.
