I don't get it. When async.series is invoked, it sets counter to 0. Every setInterval invoke increments it and in callback, the incremented value is checked against waitForPartAttempts.

I don't see how to scope affects this. 

Not that it breaks anything, I just don't get it.