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

https://github.com/caolan/async

https://github.com/maxtaco/tamejs

这是两个模块。 对我来说,似乎是一样的东西,对吧?

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

async是一个库,提供方法让你控制你的程序的stream程。 例如:“我想asynchronous处理数组中的每个项目,并在所有处理完成后执行此函数”。

TameJS让你编写不是JS的代码,但会被转换成JS。 这样做的目的是让asynchronous编程更容易遵循。

我个人使用过TameJS,并且有一些问题:

  • 当报告错误时,行号是JS文件的行号,而不是你写的TJS文件。 跟踪错误是一个痛苦。
  • 有可能是很难追查的错误。 我记得有一个错误与return res.send(200)请求没有被发送。 现在已经被修好了,但是在我的嘴里却很不好吃。

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

作为最后的build议,也许你应该尝试编写自己的代码来pipe理控制stream。 如果你是JS的新手,那么看看这些库在里面做什么,这将是一个很好的学习经验。 即使时间紧迫,最好理解外部库的作用,这样才能充分利用它们。

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