Async: 将参数传递给瀑布中的第一个函数?

创建于 2011-02-25  ·  9评论  ·  资料来源: caolan/async

似乎不可能将参数传递给瀑布中的第一个函数。

这是否可以通过其他方式完成,因为我真的需要第一个来获取一些变量。

最有用的评论

async.waterfall([
    async.apply(func1, "1")
], function (err, result) {

});

function func1(par1, callback) {
    console.log(par1); // Outputs: 1
}

所有9条评论

定义一个虚拟函数,用您需要的变量调用您的函数。 像这样:
异步瀑布([

function(cb)
{
  cb(null, username, password);
},
Authenticate,...

伟大的黑客 =)

另一种方法是使用 async.apply(authenticate, username, password) 预先绑定参数。

async.waterfall([
    async.apply(func1, "1")
], function (err, result) {

});

function func1(par1, callback) {
    console.log(par1); // Outputs: 1
}

@adisos谢谢! +1

嗯......伟大的黑客,真的......我也对无法将参数传递给第一个瀑布函数感到困惑......但是,这不应该作为错误/不一致发布给模块作者(caolan)吗? 这种方法的所有整洁都消失了,有了这些黑客......:-/

这是这些方法的预期用途。 async.apply 主要是为此用例添加的 AFAIK

该文档确实提供了使用带有函数的瀑布的示例,但是,如果有人想修改自述文件以显示使用带有应用的瀑布,那就太棒了

:+1: @adisos apply 很棒! 我只使用了这个库一段时间,我一直印象深刻。

如果有人仍然遇到此问题,则常量函数效果很好。

async.waterfall([
    async.constant(42),
    function (value, next) {
        // value === 42
    },
], callback);

有关更多信息,请查看http://caolan.github.io/async/docs.html#.constant

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

sjungwirth picture sjungwirth  ·  8评论

ORESoftware picture ORESoftware  ·  8评论

hargasinski picture hargasinski  ·  21评论

flatcoding picture flatcoding  ·  14评论

kazaff picture kazaff  ·  10评论