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_Asynchronous_Module - Fatal编程技术网

Javascript 这两个node.js模块做的是相同的事情吗?

Javascript 这两个node.js模块做的是相同的事情吗?,javascript,node.js,asynchronous,module,Javascript,Node.js,Asynchronous,Module,这是两个模块。对我来说,似乎是一样的,对吗 或者……它们在不同的情况下使用吗?它们完全不同,尽管它们试图解决大致相同的问题。虽然async是一个非常酷的流控制库,它为您提供了一些帮助函数来管理异步代码,但tamejs是(类似于,我更喜欢)为编译为异步代码的伪同步代码添加的一组语言。async是一个库,它提供了一些方法来控制程序流。例如:“我希望异步处理数组中的每个项,并在所有处理完成后执行此函数” TameJS使您编写的代码不是JS,但会转换为JS。它的目的是使异步编程的方法更容易遵循 我个人使

这是两个模块。对我来说,似乎是一样的,对吗


或者……它们在不同的情况下使用吗?

它们完全不同,尽管它们试图解决大致相同的问题。虽然
async
是一个非常酷的流控制库,它为您提供了一些帮助函数来管理异步代码,但tamejs是(类似于,我更喜欢)为编译为异步代码的伪同步代码添加的一组语言。

async
是一个库,它提供了一些方法来控制程序流。例如:“我希望异步处理数组中的每个项,并在所有处理完成后执行此函数”

TameJS使您编写的代码不是JS,但会转换为JS。它的目的是使异步编程的方法更容易遵循

我个人使用了TameJS,但它存在一些问题:

  • 报告错误时,行号是JS文件的行号,而不是您编写的TJS文件。跟踪错误是一种痛苦
  • 可能存在难以追踪的bug。我记得在
    return res.send(200)
    中有一个bug,请求没有被发送。现在已经修好了,但味道很差
我现在正在使用
async
,发现它可以使代码非常容易阅读和理解


最后一个建议是,也许您应该尝试编写自己的代码来管理控制流。如果您是JS新手,那么了解这些库的内部功能将是一次非常好的学习体验。即使在时间紧迫的情况下,也最好了解外部库的功能,以便充分利用它们。

@user847495:dependence。对于低级逻辑来说,在上面加一个额外的语言似乎是个坏主意。但是,如果您正在编写一系列业务逻辑,那么streamlinejs之类的工具可能是正确的(实际上,这就是它的构建目的)。