In my node.js app, I need to use setImmediate()
to recessively call a function and keep its context intact for next execution.
Consider following example:
var i=3;
function myFunc(){
console.log(i, this);
--i && setImmediate(arguments.callee);
}
myFunc();
Output:
3 // a regular `this` object
2 { _idleNext: null, _idlePrev: null, _onImmediate: [Function: myFunc] }
1 { _idleNext: null, _idlePrev: null, _onImmediate: [Function: myFunc] }
As you can see, after first execution this
is overwritten. How should I work around this?