Node.Js中的异步问题 - 如何执行一系列操作?

时间:2014-05-25 23:56:44

标签: javascript node.js asynchronous

我需要对变量执行一系列操作,其中前一个操作的输出将是下一个操作的输入。

此外,如果输入结构不良,有可能在每一步都会中止整个过程。

我知道这可以通过回调函数完成,但是我有很多步骤它变得一团糟。

有人知道我可以用来避免这种情况的好解决方案吗?只是一个模块,它有助于按顺序执行操作?还是另一种技术?

谢谢!

2 个答案:

答案 0 :(得分:1)

听起来async.waterfall可能是您正在寻找的内容。

就早期中止而言,async没有一种简单的方法可以做到这一点,但我通常所做的就是用#34;假&#34来回叫;错误实例,然后在最后的回调中,我检查"假"错误与真实错误(通常我会对某些属性进行处理,例如' err.abort = true;`并检查它)。

答案 1 :(得分:1)

如果您使用Async.js。您可以使用async.whilstasync.until

var count = 0;

async.whilst(
    function () { return count < 5; },
    function (callback) {
        count++;
        setTimeout(callback, 1000);
    },
    function (err) {
        // 5 seconds have passed
    }
);

第一个函数用于条件检查。第二个函数实际上是逻辑,您可以保存结果并将其重新用作新输入。