在运行此代码(在 nodejs 中)时,“计数”对于较大的“计数”值运行为负数。谁是罪魁祸首,“伯爵”还是“链条”?编写“洪水”函数的正确方法是什么,以便它在 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 永远不会变为负数。