Creates a task interleaving a feed of feeds into a single feed.
Nested feeds are opened as the source yields them and consumed together, each kept one item ahead, so a slow nested feed never holds back the others; the items of every nested feed keep their own order among themselves. A nested feed contributing nothing simply drops out.
flat() instead
where the source carries an unbounded number of feeds.Output order is not preserved: items interleave and overtake each other according to how quickly every nested feed produces them.
Nested feeds failing while the consumer is idle report their error when the feed is next advanced, rather than escaping as unhandled rejections.
The source and every nested feed still open are closed when the feed is exhausted, fails or is closed early, waiting for their pending items to settle first, so a feed idling between items delays it; failures reported while closing are suppressed.
The type of items carried by the nested feeds
A task yielding the items of every nested feed as they become available
Creates a task interleaving the feeds another task reports into a single feed.
Hands the feed drawn from to task and interleaves the feeds it reports as the overload taking no argument does, so
that an item mapped to a feed of its own is expanded in place into the items of that feed.
task and the feeds it reports do, an infinite one keeping it open without holding back the items of
the others.flat() instead where
task reports an unbounded number of feeds.task carries across the
items it draws.task draws from the whole feed, so state it initialises on invocation decides on every item, as it would
anywhere else in the pipe. Where a source already carries feeds and a task is to be scoped to each of them,
apply it within map(): join(map(feed => feed(take(2)))) yields its quota to every nested feed.
The type of items drawn from the feed
The type of items carried by the feeds task reports
A task yielding the items of every feed task reports, as they become available
Opens a feed interleaving the nested feeds of another feed.
Interleaves a feed in place, without routing it through a pipe: join(feed) carries the same items as
feed(join()). Nested feeds are opened as feed yields them and consumed together, so a slow nested feed never
holds back the others; the items of every nested feed keep their own order among themselves.
feed and its
nested feeds do, an infinite nested feed keeping it open without holding back the items of the others.flat() instead
where feed carries an unbounded number of nested feeds.Output order is not preserved: items interleave and overtake each other according to how quickly every nested feed produces them.
Failures and closing behave as with the overload taking no argument: nested feeds failing while the consumer is
idle report their error when the opened feed is next advanced, and feed and every nested feed still open are
closed when the opened feed is exhausted, fails or is closed early.
The type of items carried by the nested feeds
A feed carrying the items of every nested feed of feed as they become available
Creates a task interleaving nested feeds into a single feed, with or without a task opening the feeds to interleave, or opens a feed interleaving the nested feeds of another feed.