Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js命令行工具_Javascript_Node.js - Fatal编程技术网

Javascript node.js命令行工具

Javascript node.js命令行工具,javascript,node.js,Javascript,Node.js,我正在用node.js编写我的第一个命令行工具。我熟悉异步io的概念,并理解使用它的好处。但是,我想知道,因为此工具将执行以下操作: 执行一些FS操作(例如创建文件夹、写入某些文件) 提出网络请求(例如,将一些资料下载到此文件夹) 产生一个结果(意味着一堆文件) 出口 我真的应该为这些方法使用所有的异步版本吗?例如,mkdirp() 为什么我还要费心在一个程序中使用异步函数,而这个程序将在完成时终止?并且在应用程序线程被阻塞的情况下没有实际影响 谢谢。我不是nodejs方面的专家,但我确实在no

我正在用node.js编写我的第一个命令行工具。我熟悉异步io的概念,并理解使用它的好处。但是,我想知道,因为此工具将执行以下操作:

  • 执行一些FS操作(例如创建文件夹、写入某些文件)
  • 提出网络请求(例如,将一些资料下载到此文件夹)
  • 产生一个结果(意味着一堆文件)
  • 出口
  • 我真的应该为这些方法使用所有的异步版本吗?例如,
    mkdirp()

    为什么我还要费心在一个程序中使用异步函数,而这个程序将在完成时终止?并且在应用程序线程被阻塞的情况下没有实际影响


    谢谢。

    我不是nodejs方面的专家,但我确实在node中开发了部分应用程序
    如果我错了,欢迎你纠正我

    为什么要麻烦使用异步函数,是因为当您运行同步脚本时,整个过程都会停止。Nodejs基本上是一个事件循环,因此当您运行同步功能时,该循环将停止,直到同步功能完成,从而破坏其用途。


    如果您的应用程序是针对单个用户的,那么在我看来这不会是什么大问题,但是如果是针对多个用户的,那么您应该使用异步函数。

    在您的情况下,如果您针对FS操作使用同步函数,那么在此期间您将无法向节点服务器发出任何其他请求。尽管不会花费太多时间,但使用异步函数始终是明智的。

    简短回答:在所描述的场景中,您不必费心

    详细回答:这取决于此应用程序的真正目的。如果这只是快速而肮脏的原型来测试某些东西,或者向你的老板展示你可以制作节点应用程序-使用异步或同步-没有人会在意

    但若你们打算把这个应用程序还给社区,你们一定要考虑异步方法。如果有人无意中发现了您的代码并希望重用它,例如在吞咽/咕哝任务中,那该怎么办?除非有人将其重写为异步,否则您的代码将毫无用处

    此外,正如您提到的,这是您在node中的第一个应用程序,所以您应该从一开始就养成正确的习惯,例如,在处理文件系统或网络时使用异步函数

    如果您对异步方法中的所有这些回调感到恼火,请尝试将承诺(例如,惊人的或)-之类的东西合并到您的工作流程中,这将帮助您实现非常干净且易于维护的代码,这是完全异步的+可以以过程式编写

    希望这会有帮助