似乎不可能将参数传递给瀑布中的第一个函数。
这是否可以通过其他方式完成,因为我真的需要第一个来获取一些变量。
定义一个虚拟函数,用您需要的变量调用您的函数。 像这样:
异步瀑布([
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);
最有用的评论