【发布时间】:2012-09-19 21:18:11
【问题描述】:
有几个 js 库可用于流控制。
虽然在使用闭包编译器时,我看到的那些在高级模式下不能很好地使用编译器。
是否有任何闭包兼容的流控制库? 我最感兴趣的是等待多个结果,而不会使代码过于复杂。
我想要归档的是减少用户操作的加载时间。 对于用户的一项操作,必须向后端执行多个请求。为了保持代码的可维护性,目前,我一次只做一个请求,并在每一步之后处理潜在的错误。
我想要存档的是,我可以一起触发非依赖请求,而不会使错误处理变得过于复杂。
我喜欢flow js的语法:
var auth = flow.define(
function(username, password) {
sys.puts("trying " + username + ", " + password);
this.password = password;
keystore.get('userId:' + username, this);
},function(err, userId) {
keystore.get('user:' + userId + ':password', this);
},function(err, passwordInDb) {
if (passwordInDb == this.password) {
sys.puts("Authenticated!");
}
else {
sys.puts("Failed Authentication!");
}
}
)
它还允许产生多个异步操作并收集它们。 尽管如果您需要回调之间的任何状态,则该状态会像上面的“this.password”一样存储。 由于未键入包含范围,因此在高级模式下,闭包编译器将无法一致地重命名它(据我所知)。
所以我需要一个替代方案,它有一个类型化的容器对象,通过每个函数作为参数(或 this)推送。
【问题讨论】:
-
您应该添加一些说明:您在说什么样的流量控制?您能举一些不起作用的流控制库示例吗?
-
谢谢...试图澄清 flow.js 的例子——在比较大小和功能时,这似乎相当不错。
标签: javascript google-closure-compiler google-closure google-closure-library flow-control