JS Framework处理异步流,回调和闭包?

时间:2012-10-23 03:50:05

标签: javascript jquery mongodb twitter-bootstrap flask

我不喜欢JavaScript。很大。我认为这是一种混乱的语言,虽然我会第一个承认这可能是因为我不知道如何编写它以及其他语言。

我浪费了最后三天处理错误,这些错误都源于我对异步控制流,回调函数和闭包的理解不足。

我想知道是否有一种更简单的JS编程方式,以便我可以恢复生产力。我目前的堆栈是Flask,MongoDB,JQuery和Bootstrap。理想情况下,我想补充而不是取代那些。

哪些框架或工具能够最好地缓解我上面概述的JS问题?

2 个答案:

答案 0 :(得分:4)

我建议你学习如何使用jQuery Deferreds。它们不是为了使用异步函数进行干净编程所必需的,但它们可能是您正在寻找的提供某种方向和结构的工具。

如果您展示了一些看起来很混乱的代码示例,我们可以提供更多细节。

当我有超过10-15行代码的回调函数时,我将它们分解为一个命名函数,并给它一个名称来描述它的作用。在某些情况下,我甚至将它作为现有对象的方法。例如,在API中,我使用具有ajax all的全部用于登录,我有一个名为ProcessLoginResponse()的方法,它处理来自ajax调用的登录响应。如果登录成功,则此方法必须发出另一个API调用,并在同一对象上创建另一个方法,该方法处理对该ajax调用的响应以继续流程。我用注释记录了流程是如何工作的,但是适当命名的方法使得代码看起来很干净,很容易知道在哪里设置断点或进行修改。

答案 1 :(得分:0)

查看https://github.com/infinitycbs/jflow

它是一个擅长处理node.js和浏览器中的异步任务的框架。它还处理具有静态,公共和私有成员的组件结构,如传统的OOP。