2

我对选择async.js方法来探索几种替代方法并在第一种方法成功时停止表示怀疑。

例如:

async.probeSeries([
    function (callback) {
        // try something and call callback
        // without arguments - probing fails
        callback();
    },
    function (callback) {
        // try something and call callback
        // with arguments - probing successful
        callback(null, ok);
    },
    function (callback) {
        // will be not executed, because
        // the second one is successful
        callback();
    }
], function (err, result) {
    // handle the result returned by the second probe
});

我认为使用系列并将结果作为错误方式返回可能是一种解决方法,但有更好的方法吗?

4

1 回答 1

1

也许你正在寻找detectSeries?它的工作方式与您的示例略有不同,因为它使用相同的函数检查数组中的值,然后使用这些值之一进行回调,但也许您可以将其应用于您的问题。

顺便说一句,这看起来像是像Q这样的 Promise 库的完美用例,您可以在其中编写

probe1().fail(probe2).fail(probe3).done(resulthandler, errhandler);
于 2013-10-02T12:50:14.250 回答