使用延续(回调)而不是直接顺序执行的模型编程几次会更困难。 NodeJs可以阻止呼叫吗?有没有办法在Node.Js中进行阻塞调用?
1
A
回答
2
是的,它可以。例如,您可以使用fs.readFileSync()而不是fs.readFile()读取文件。每个库通常为同步/阻塞方法提供一个xxxSync方法。
但是你不应该经常使用同步方法。请记住,Node.js对JavaScript代码使用单个执行线程。如果你屏蔽了这个线程,你就可以为每个人屏蔽它(不同于C#/ Java,其中每个请求都会创建一个新线程)。
如果异步方法对你来说太多了,你可能想使用另一个平台(Ruby, Python,PHP)。
+0
它不是太多它只是带来不必要的复杂性有时 –
+0
在语言本身(如生成器)或可用库(如异步)上完成的一些工作可以帮助语法,但我听到你的声音。有时候你只需要一个简单的顺序工作流程,并且它在Node.js中几乎不像其他语言那样整洁。 –
0
相关问题
- 1. 有没有办法在java中阻塞套接字和阻塞队列?
- 2. 有没有办法验证没有线程阻塞?
- 3. 有没有办法从node.js在Postgresql中进行批量插入?
- 4. 有没有办法阻止Node.js中的输入?
- 5. 有没有办法使代码块本身非阻塞
- 6. 有没有办法显示“阻塞”WinForms的ContextMenu?
- 7. 有没有办法隔离阻塞异步代码的库
- 8. 有没有办法让StringIO读取阻塞
- 9. MPI_Recv没有阻塞
- 10. socket_read()没有阻塞
- 11. 有没有办法在Scala中以非阻塞方式复制文件?
- 12. 有没有办法使用Drive SDK进行批量调用?
- 13. 有没有办法阻止在AsyncTask中执行HttpClient?
- 14. 有没有办法使用Petrel 2012.1 64位进行调试?
- 15. 有没有办法在Kindle Fire上进行USB调试?
- 16. 有没有办法在改变window.location.href之后进行onload回调?
- 17. 有没有办法配置NetBeans使用Tab键阻止缩进?
- 18. form.parse()方法没有在node.js中调用
- 19. 有没有办法阻止JSON.stringify调用toJSON?
- 20. 有没有办法从Node.js程序调用exec(2)函数?
- 21. 有没有办法从node.js调用Google Keyczar?
- 22. 没有阻塞线程
- 23. 有没有办法阻止html警告?
- 24. 有没有办法阻止WatIn超时?
- 25. 有没有办法阻止代理?
- 26. 有没有办法在Python中进行SOAP调用,而不是等待返回?
- 27. 有没有办法阻止无效的行范围在PowerBuilder
- 28. Python:为什么recv()在阻塞模式下没有阻塞?
- 29. Qt有没有办法阻止电脑进入睡眠状态?
- 30. 有没有办法在javascript中换行?
您可以使用像async这样的模块来帮助管理回调链。 – Joe
如果你所做的只是文件系统访问,那么你可以在'fs'模块中使用同步功能。否则,没有任何机制可以制作异步功能块。正如@Joe提到的,您应该更有效地管理回调。当你习惯它时,这并不难或复杂。 – qubyte