pat*_*r82 0 node.js underscore.js
我刚刚开始使用Node.js,我知道大多数操作必须使用回调来进行非阻塞.我的问题涉及Underscore.js公开的方法.例如
_.shuffle([1, 2, 3, 4, 5, 6]);
Run Code Online (Sandbox Code Playgroud)
鉴于没有提供回调,这不会被视为同步代码吗?考虑一个大的列表来洗牌.
试图掌握哪些库可以与节点一起使用而不影响使用节点的基本原理.
谢谢!
Node是单线程的,因此任何需要完成的工作最终都将由该线程完成.Node的异步性质意味着它总是试图让自己忙于工作,而不是等待返回数据(比如数据库调用,网络调用,磁盘访问等).当您阅读有关确保代码是异步的内容时,这些是人们正在讨论的操作类型.
拖拽一堆数字是一堆必须由单个Node线程完成的工作,这使得这种类型的调用async不会做任何事情.所以,是的,该调用是同步的并且将阻塞线程,但实际上没有替代方案(没有产生工作线程或其他节点进程).如果你有很多繁重的计算要做,这就是Node真的不是最好的选择的原因之一,因为它会阻塞单个线程.Node最擅长快速完成大量短期任务.
请注意,拖拽一百万个数字可能仍然比单个数据库调用更快,因此这个特定操作不会对整体性能产生太大影响.如果您需要洗牌1亿个数字,Node可能不是正确的平台.
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |