有没有办法在Node.Js中进行阻塞调用?

使用延续(callback)而不是直接顺序执行的模型编程几次就困难了。 NodeJs可以阻止呼叫吗?

是的,它可以。 例如,您可以使用fs.readFileSync()而不是fs.readFile()来读取文件。 每个库通常为同步/阻塞方法提供一个xxxSync方法。

但是你不应该经常使用同步方法。 请记住,Node.js对JavaScript代码使用单个执行线程。 如果你阻止了这个线程,那么你可以为每个人阻塞它(不像C#/ Java那样每个请求都会创build一个新的线程)。

如果asynchronous方法对您来说太多,您可能需要使用其他平台(Ruby,Python,PHP)。

是的,node.js 0.11.x可以在发生器内部阻塞调用。 通过“阻止呼叫”我的意思是暂停执行当前的function。 看看合作图书馆。

这是阻止呼叫的唯一推荐方式。

除此之外,您可以查看光纤 ,但需要谨慎使用,而不是通用库。

前面提到的还有一些Sync调用,但是除非你写一行代码,否则请尽量避免使用它们。