+1 on event emitter. Callback with an array of errors is not that common.
You should return an event emitter with complete and error events. be aware
that when you emit an 'error' event and no one is listening in the
application exits


2013/2/25 Pedro Teixeira <[email protected]>

> Hey Glenn,
>
> For something this complex I think an event emitter may be better suited.
>
> --
> Pedro
>
> On Monday, February 25, 2013 at 9:57 AM, Glenn Block wrote:
>
> Hello all
>
> Let's assume you have an API that results in a batch of HTTP calls which
> fire async and which are not sequential. A constraint of the API is that
> any errors that occur during the calls need to get returned to the user.
>
> How have you customarily designed this?
>
> One idea was something like the following
>
> function send(message, callback) {
> }
>
> where callback is function(error, results) {
> }
>
> In this case error if not null is a JSON object with a collection of child
> objects with the errors.
>
> An alternative idea I had was to have an additional completion callback
> per item.
>
> so:
>
> function send(message, completionCallback, itemCallback) {
> }
>
> This introduces a callback for each item that is processed. In this case
> the completion callback has a single error if ANY errors occur while the
> itemCallback has individual errors as they occur.
>
> This is useful for cases where you might want to stop further processing
> if the number of errors is very high.
>
> Thoughts / Experiences?
> Glenn
>
>
>
>  --
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
>
>  --
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to