如果checkStatus()和performAction()是一个接一个被调用的同步函数,那么就像前面提到的那样:它们的执行将不中断地运行直到完成。但是,我怀疑实际上这两个函数都是异步的,组成它们的现实情况是这样的:
function checkStatus(callback){ doSomeIOStuff(function(something){ callback(something == ok); });}checkStatus(function(status){ if(status == true){ performAction(); }});上面的代码受竞争条件的影响,因为当执行doSomeIOStuff而不是等待它时,可以满足新的请求。
您可能要检查https://www.npmjs.com/package/rwlock库。



