gpt4 book ai didi

javascript - node.js 命令行工具

转载 作者:搜寻专家 更新时间:2023-11-01 00:31:59 24 4
gpt4 key购买 nike

我正在用 node.js 编写我的第一个命令行工具。我熟悉 async io 的概念并了解使用它的好处。不过我想知道,因为该工具将执行以下操作:

  1. 执行一些 FS 操作(例如创建文件夹,写入一些文件)
  2. 发出网络请求(例如,将一些东西下载到此文件夹中)
  3. 产生一个结果(意思是一堆文件)
  4. 退出

我真的应该为这些方法使用所有异步版本吗?例如 mkdirp() 也可作为 mkdirpSync()(来自 fs-extra 模块),所以真正的问题是:

Why do I even have to bother using async functions in a program that is due to terminate upon completion? and has no real impact in case the application thread is blocked?

谢谢。

最佳答案

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

长答案:这取决于这个应用程序的真正目的是什么。如果那只是快速和肮脏的原型(prototype)来测试某些东西或向你的老板展示你可以制作 Node 应用程序——使用异步或同步——没有人会关心。

但是,如果您打算将此应用回馈给社区,您绝对应该考虑异步方法。如果有人偶然发现您的代码并想重用它,例如在 gulp/grunt 任务中然后呢?在有人将其重写为异步之前,您的代码将毫无用处。

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

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

希望这会有所帮助!

关于javascript - node.js 命令行工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28784522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com