这两个node.js模块做同样的事情吗?

时间:2011-11-22 22:05:45

标签: javascript node.js asynchronous module

https://github.com/caolan/async

https://github.com/maxtaco/tamejs

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

或......他们在不同情况下使用过吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

TameJS让你编写的代码不是JS,但会转换为JS。它的目标是让异步编程更容易理解。

我个人使用过TameJS,但它有一些问题:

  • 报告错误时,行号是JS文件的行号,而不是您编写的TJS文件。追踪错误是一种痛苦。
  • 可能存在难以追踪的错误。我记得有一个return res.send(200)的错误,其中没有发送请求。它现在已经修好了,但它的味道很糟糕。

我现在正在使用async并发现它可以使代码非常易于阅读和理解。

作为最后的建议,也许你应该尝试编写自己的代码来管理控制流程。如果您是JS的新手,那么看看这些库在内部做什么将是一次非常好的学习经历。即使您处于时间紧迫状态,最好还是了解外部库的功能,以便您可以充分利用它们。