因此,在 javascript 中,由于其本质是事件驱动的,因此 setTimeout 似乎不会阻塞。这意味着如果我这样做:
setTimeout(function(){
console.log('sleeping');
}, 10);
console.log('prints first!!');
它将输出'prints first!!'
进而'sleeping'
.
js解释器不会等到setTimeout完成,而是立即执行下面的代码段。当10ms过去后,执行回调函数。
现在我最近一直在玩Ruby。我知道它在事件机库中具有非阻塞支持。但我想知道我们是否可以实现类似于我刚刚用 javascript 编写的 setTimeout 示例的功能sleep
或者 ruby 中的任何函数本身没有事件机支持?使用闭包过程或块或其他东西是否可以做到这一点?谢谢。
The setTimeout
功能一点也不像sleep
因为前者是异步的,后者是同步的。
红宝石sleep
方法与 POSIX 对应方法一样,会停止脚本的执行。这setTimer
JavaScript 中的函数会在将来某个时间触发回调。
如果你想触发异步回调,你可能需要类似的东西事件机器为您运行事件循环。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)