因为 JavaScript 是事件驱动的,所以 setTimeout 看起来不会阻塞。这意味着如果我这样做:
setTimeout(function(){
console.log('sleeping');
}, 10);
console.log('prints first!!');
它将输出'prints first!!'
然后是'sleeping'
。
JavaScript解释器不会等待setTimeout完成,相反,它立即执行其下面的代码。当10ms过去时,它才执行回调函数。
最近我一直在玩ruby。我知道它在event-machine库中具有非阻塞支持。但我想知道是否可以使用sleep
或任何ruby本地函数在闭包proc、块或其他方式中实现类似于我刚刚用javascript写的setTimeout示例?这种情况是否可能?谢谢。