Hi all,

I have asked this question of the issues page of the coffee-script account on 
github. However, I believe it is also relevant to the node.js community.
I am trying to understand callbacks within for loops. Suppose I have two 
methods mth1 and mth2 as follows:


 mth1: (item, callback) ->
    callback null, item

mth2: (my_array, cb) ->
    for my_item in my_array
        @mth1 my_item, (error, result) =>
            if error?
                cb error, null
    cb null, "done"
I have noticed that this code binds the last my_item to all the function (mth1) 
calls. Is that the normal behavior? Is there something I forgot to do?
I also have a couple more questions regarding callbacks within loops. Consider 
the following code:


class CB_test
    constructor: 
        # constructor code goes here
    
    # Just an ordinary method
    another_method: (item, cb) ->
        cb null, item
    
    outer_method: (my_array, callback) ->
        @inner_method my_item, callback for my_item in my_array
        callback null, "Outer method completed"
    
    inner_method:(my_item, cb1) ->
        @another_method my_item, (error, result) =>
            if error?
                cb1 error, null
Obviously, what I wanna do here is similar to the previous case, but with a 
correct binding. However, if an error occurs ininner_method, cb1 error, null 
will be called first, and then callback null, Outer method completed will be 
called. How do I circumvent that? Any thought?
Thanks in advance
José

-- 
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

Reply via email to