Я ищу, чтобы иметь лучшее управление потоком для этой функции асинхронного водопада.Управление потоком асинхронного обратного вызова
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]
. Это здорово!
Однако предположим, что мне нужно выйти из Интернета позже. Скажем, я нажимаю это в свой массив функций водопада.
async.apply(newFunction, existingIcon)
Как бы получить existingIcon
этой функцией? Глобал? Кажется, головная боль управляется! Я также думаю, что функция async.apply
выполняется при загрузке, поэтому, если я передам ей переменную, она будет использовать значение переменной при выполнении async.apply
.
Мысли? У меня есть предложение для async.switchboard
here. Какие попытки решить это, но это не сработает.
Верстка всегда работает. – Bergi
@ Bergi Ты меня троллировал? – ThomasReggi
Я не хотел, нет. Но всякий раз, когда вам нужны переменные несколько раз (т. Е. Не прямой водопад), тогда вложенные обратные вызовы - это тривиальное решение, которое работает хорошо (намного лучше, чем пытаться использовать глобальные переменные) и обычно это путь. – Bergi