使用延續(回調)而不是直接順序執行的模型編程幾次會更困難。 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