一个可翻译成JavaScript的脚本,带有callback-hell自动避免器
A script translatable to JavaScript with callback-hell automatic avoider
我正在寻找JavaScript的"翻译器",就像已经是CoffeScript一样,例如可以与forEach
一起使用(灵感来自Groovy)
myArray.forEach() -> val, idx {
// do something with value and idx
}
翻译成 JavaScript:
myArray.forEach(function(val, idx){
// do something with value and idx
});
或者更有用的东西...
function event(cb){
foo()-> err, data1;
bar(data1)-> err, data2;
cb(data2);
}
该方法封装:
function event(cb){
foo(function(err,data1){
bar(data1, function(err, data2) {
cb(data2);
});
});
}
我想问一下,像这样与 JavaScript 类似的"编译器"是否已经不存在了?
什么会超级酷...我在 NodeJS 中的代码主要看起来像这样:-)
function dealer(cb){
async.parallel([
function(pcb){
async.watterfall([function(wcb){
first(function(a){ wcb(a); });
}, function(a, wcb){
thirt(a, function(c){ wcb(c); });
fourth(a, function(d){
// dealing with “a” as well and nobody care my result
});
}],
function(err, array_with_ac){
pcb(array_with_ac);
});
}, function(pcb){
second(function(b){ pcb(b);});
}], function(err, data){
cb(data[0][0]+data[1]+data[0][1]); // dealing with “a” “b” and “c” not with “d”
});
}
但是,看看代码可以多么漂亮和可读:
function dealer(cb){
first() -> a;
second() -> b;
third(a) -> c; // dealing with “a”
fourth(a) -> d; // dealing with “a” as well and nobody care about my result
cb(a+b+c); // dealing with “a” “b” and “c” not with “d”
}
是的,这是转换器自动决定的理想情况,方法需要并行运行,并且在完成另一个方法后需要调用方法。我可以想象这是作品
拜托,你知道类似的事情吗?
你研究过承诺吗(这是一个实现)?它是普通的Javascript,所以你不会像CoffeeScript那样改变语法,但承诺允许你以一种优雅的方式处理"我想使用a,b和c,但不是d"的情况。
另一种可能性是使用 async.auto
,它将执行异步函数并根据需求确定最佳顺序。
如果您专门寻找异步"问题"的解决方案,您可能需要查看 Streamline。
相关文章:
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何创建带有插槽的vue js组件预加载程序
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- Javascript”;类“;带有参数的扩展
- 带有加号的电话号码验证(可选)
- 创建带有和不带有JavaScript的Bootstrap下拉菜单
- 使用D3.js计算带有字母间距的文本长度
- 使用带有JavaScript的SOAP WebService
- 下拉框,带有展开的optgroup
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- 带有验证和隐藏字段值的提交按钮
- 如何使用带有Preact的React路由器
- 带有let的JS/EECMAScript6私有字段的模式
- 带有多个elseif的Javascript if语句
- Wordpress中带有JQuery Accordion的未定义匿名函数
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 一个可翻译成JavaScript的脚本,带有callback-hell自动避免器
- 带有JSONP的AJAX返回错误Callback is Undefined