这两个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代码。