【发布时间】:2013-07-16 09:07:05
【问题描述】:
在运行此代码时(在 nodejs 中),对于较大的 'count' 值,'Count' 运行负数。 谁是罪魁祸首,“伯爵”还是“链条”? 编写“洪水”函数的正确方法是什么,以便它在 setTimeout() 之后安排下一次调用。
flood = function( count) {
chain = function() {
--count;
console.log("Count " + count)
if( count > 0 ) {
setTimeout(chain, 1);
}
};
chain();
}
runit = function (count,par) {
console.log("RUNIT: " + count + " , " + par )
for( var i = 0 ; i < par ; i ++ ) {
flood(count)
}
}
runit(3,4)
感谢
更新: 如果我调用 chain() 而不是 setTimeout(chain,1),则 Count 永远不会变为负数。
【问题讨论】:
标签: javascript node.js closures