【发布时间】:2020-01-11 05:57:11
【问题描述】:
我希望为这个异步瀑布函数提供更好的流量控制。
async.waterfall([
async.apply(osxAppIconName, options.appFile),
function(iconFileName, callback) {
var existingIcon = path.join(options.iconDirectory, iconFileName);
return callback(null, existingIcon);
},
async.apply(fs.copy, options.iconFile), //automatically puts in existingIcon
async.apply(osxAppIconTouch, options.appFile),
], callback);
现在我正在使用async.apply,它将注入全局函数参数。在上面的这种情况下,我很好,它需要existingIcon 并将其添加为fs.copy 中的倒数第二个参数。制作fs.copy 的参数options.iconfile、exitingIcon、回调[function]。太棒了!
但是,假设我稍后需要 exitingIcon。假设我将它推送到我的瀑布函数数组中。
async.apply(newFunction, existingIcon)
如何让existingIcon 使用此功能?全球人?管理起来似乎很头疼!我还认为async.apply 函数在加载时执行,所以如果我将一个变量传递给它,它将在async.apply 执行时使用该变量的值。
想法?我有一个async.switchboard here 的提案。它试图解决这个问题,但它不起作用。
【问题讨论】:
-
嵌套总是有效的。
-
@Bergi 你在捉弄我吗?
-
我不是故意的,不。但是,当您多次需要变量时(即不是直瀑布),嵌套回调是一种简单的解决方案,效果很好(比尝试使用全局变量要好得多),通常是要走的路。
标签: javascript node.js asynchronous callback control-flow