javascript – 在node.js中使用Async瀑布时的“错误”参数

前端之家收集整理的这篇文章主要介绍了javascript – 在node.js中使用Async瀑布时的“错误”参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试执行一系列函数,每个函数都将回调传递给下一个.现在它看起来像这样(原谅任何小错误,我在发帖时重写它!):
function func1(callback) {
    callback(null,"stuff");
}

function func2(input,callback) {
    callback(null,"foo" + input);
}

async.waterfall([func1,func2],function(err,result) {
    sys.puts(result);
});

我的第一个问题是,我不确定如何优雅地启动此功能,因为它无法接受输入.我最终将把它包装在一个本地函数中,但它仍然让我有点不安.

其次,虽然这有效,但我不知道“错误”这个论点是如何发挥作用的.如果我尝试将其插入到参数列表中,它会以各种方式中断.我希望能够单独捕获任何函数中的错误 – 或者这是否需要,因为我在传递的最后一个回调上有错误

解决方法

瀑布通常与匿名函数一起使用,因此参数来自外部范围.

错误如何工作很简单,当你提供任何评估为true的东西时,回调函数的第一个参数瀑布将停止并调用主回调.

function doStuff(foo,bla) {
    // more setup here

    async.waterfall([
        function(callback){
            try {
                // something that might explode
                callback(null,foo,bla);

            } catch (e) {
                callback(e);
            }
        },function(arg1,arg2,callback){
            callback(null,'three');
        },'done');
        }
    ],function (err,status) {
       // if the above try/catche catches something,we will end up here
       // otherwise we will receive 'done' as the value of status
       // after the third function has finished
    });
}
原文链接:https://www.f2er.com/js/159405.html

猜你在找的JavaScript相关文章