Javascript node.js命令行工具
我正在用node.js编写我的第一个命令行工具。我熟悉异步io的概念,并理解使用它的好处。但是,我想知道,因为此工具将执行以下操作:Javascript node.js命令行工具,javascript,node.js,Javascript,Node.js,我正在用node.js编写我的第一个命令行工具。我熟悉异步io的概念,并理解使用它的好处。但是,我想知道,因为此工具将执行以下操作: 执行一些FS操作(例如创建文件夹、写入某些文件) 提出网络请求(例如,将一些资料下载到此文件夹) 产生一个结果(意味着一堆文件) 出口 我真的应该为这些方法使用所有的异步版本吗?例如,mkdirp() 为什么我还要费心在一个程序中使用异步函数,而这个程序将在完成时终止?并且在应用程序线程被阻塞的情况下没有实际影响 谢谢。我不是nodejs方面的专家,但我确实在no
mkdirp()
为什么我还要费心在一个程序中使用异步函数,而这个程序将在完成时终止?并且在应用程序线程被阻塞的情况下没有实际影响
谢谢。我不是nodejs方面的专家,但我确实在node中开发了部分应用程序
如果我错了,欢迎你纠正我
为什么要麻烦使用异步函数,是因为当您运行同步脚本时,整个过程都会停止。Nodejs基本上是一个事件循环,因此当您运行同步功能时,该循环将停止,直到同步功能完成,从而破坏其用途。
如果您的应用程序是针对单个用户的,那么在我看来这不会是什么大问题,但是如果是针对多个用户的,那么您应该使用异步函数。
在您的情况下,如果您针对FS操作使用同步函数,那么在此期间您将无法向节点服务器发出任何其他请求。尽管不会花费太多时间,但使用异步函数始终是明智的。简短回答:在所描述的场景中,您不必费心
详细回答:这取决于此应用程序的真正目的。如果这只是快速而肮脏的原型来测试某些东西,或者向你的老板展示你可以制作节点应用程序-使用异步或同步-没有人会在意
但若你们打算把这个应用程序还给社区,你们一定要考虑异步方法。如果有人无意中发现了您的代码并希望重用它,例如在吞咽/咕哝任务中,那该怎么办?除非有人将其重写为异步,否则您的代码将毫无用处
此外,正如您提到的,这是您在node中的第一个应用程序,所以您应该从一开始就养成正确的习惯,例如,在处理文件系统或网络时使用异步函数
如果您对异步方法中的所有这些回调感到恼火,请尝试将承诺(例如,惊人的或)-之类的东西合并到您的工作流程中,这将帮助您实现非常干净且易于维护的代码,这是完全异步的+可以以过程式编写强>
希望这会有帮助