Ben*_*jia 5 javascript ruby asynchronous ruby-on-rails
因此,在javascript中,因为它的性质是事件驱动的,所以似乎setTimeout不会阻塞.这意味着如果我这样做:
setTimeout(function(){
console.log('sleeping');
}, 10);
console.log('prints first!!');
Run Code Online (Sandbox Code Playgroud)
它将输出'prints first!!'然后'sleeping'.
js解释器不会等到setTimeout完成,而是立即执行它下面的代码片段.当10ms通过时,它执行回调函数.
现在我最近一直在玩ruby.我知道它在事件机器库中具有非阻塞支持.但是我想知道我们是否可以实现类似于setTimeout的例子我刚刚用javascript写的sleep或者ruby中的任何函数本身没有事件机器支持?这是否可能使用闭包过程或块或任何东西?谢谢.
该setTimeout函数完全没有,sleep因为前者是异步的而后者是同步的.
Ruby sleep方法与POSIX对应方法一样,会停止执行脚本.setTimerJavaScript中的函数会在将来触发回调.
如果要触发异步回调,可能需要像EventMachine这样的东西来为您运行事件循环.
| 归档时间: |
|
| 查看次数: |
4731 次 |
| 最近记录: |