我需要对变量执行一系列操作,其中前一个操作的输出将是下一个操作的输入。
此外,如果输入结构不良,有可能在每一步都会中止整个过程。
我知道这可以通过回调函数完成,但是我有很多步骤它变得一团糟。
有人知道我可以用来避免这种情况的好解决方案吗?只是一个模块,它有助于按顺序执行操作?还是另一种技术?
谢谢!
答案 0 :(得分:1)
听起来async.waterfall可能是您正在寻找的内容。
就早期中止而言,async
没有一种简单的方法可以做到这一点,但我通常所做的就是用#34;假&#34来回叫;错误实例,然后在最后的回调中,我检查"假"错误与真实错误(通常我会对某些属性进行处理,例如' err.abort = true;`并检查它)。
答案 1 :(得分:1)
如果您使用Async.js。您可以使用async.whilst或async.until
var count = 0;
async.whilst(
function () { return count < 5; },
function (callback) {
count++;
setTimeout(callback, 1000);
},
function (err) {
// 5 seconds have passed
}
);
第一个函数用于条件检查。第二个函数实际上是逻辑,您可以保存结果并将其重新用作新输入。