%PDF- %PDF-
Direktori : /usr/share/nodejs/function-loop/ |
Current File : //usr/share/nodejs/function-loop/index.js |
module.exports = loop // this weird little engine is to loop if the cb's keep getting // called synchronously, since that's faster and makes shallower // stack traces, but recurse if any of them don't fire this tick function loop (self, arr, cb, onerr, i) { if (!i) i = 0 var running = false while (i < arr.length && !running) { running = true var sync = true try { var ret = arr[i].call(self, next) } catch (er) { return onerr.call(self,er) } if (ret && typeof ret.then === 'function') ret.then(next.bind(self, null), onerr.bind(self)) i++ sync = false } function next (er) { if (er) return onerr.call(self, er) else if (!sync) return loop(self, arr, cb, onerr, i) running = false } if (i >= arr.length && !running) return cb.call(self) }