推广一下本人的作品:jsworkflow
发布于 11 年前 作者 yinmingjun 4642 次浏览 最后一次编辑是 8 年前

初次来到cnode社区,向各位社区的同行问个好。

今天想和大家讨论一下nodejs中的异步的问题,核心是如何管理异步的调用,这个问题换一个角度就是如何解决调用的次序。

nodejs的核心就是异步,异步IO极大的提高了IO的吞吐能力,这时nodejs的优点。但是异步使用过多之后,难免产生如何维护调用次序的问题。在工程层面这个往往是很简单的A、B、C这些次序的问题,很多时候还需要根据上一步的执行结果做分支判断。async和promise是社区提供的解决方案,这些方案解决了函数调用次序的问题,但是没办法解决在IO等待之后的回调执行次序的问题。

我对这个问题思考的结论是需要一个工作流引擎的支持,也就是由状态来决定执行的次序,并在一年以前写了一个初级的版本,放在github上。不过写这个版本的时候,我对nodejs社区的思路把握的还不是很清晰,而作品本身也是准备用于解决本人工作中页面状态如何维护的问题领域,所以一直没有向社区推广。

这个东东本来是想写一个设计器和它配合的,但是因为种种原因,搁置了。

工程在我的github上,大家可以去看看里面的test案例了解怎么使用。如果谁需要,可以在自己的工程中使用。当然,如果发现有什么BUG,可以mail我来修改。

github位置:

https://github.com/yinmingjun/jsworkflow

回到顶部