有几个 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)推送。