Добрый день, ребята! Помогите разобраться с методом waterfall!
Вот кусок с документации, как используется waterfall:
async.waterfall([
function(callback){
callback(null, 'один', 'два');
, }
function(arg1, arg2, callback){
// Тут arg1 равен "один"
// , а arg2 равен "два"
// что соответствует второму и третьему параметру текщего колбека
// , а первый конечно же мы не забыли - это err но в этом случае
// ошибок нет поэтому null
callback(null, 'три');
, }
function(arg1, callback){
// Здесь же arg1 будет равен уже "три"
callback(null, 'Готово');
}
], function (err, result) {
// Сейчас результат будет равен 'Готово'
});
вот кусок моего кода:
$('body').on('click', '#make-incasation', function () {
var funcArr = [];
var checked = recalculateSum(); // Здесь получаем массив объектов
allOperationsHasBeenSended = false;
for (var i = 0; i < checked.length; i++) {
(function (i) {
funcArr.push(function (cb) {
var IncomeOperation = {};
IncomeOperation.statuscode = {
Value: 1
};
IncomeOperation.erpc_BalAccountType = {
Value: 127770001
};
if ($.datepicker.parseDate('dd.mm.yy', $('#tr-date').val())) {
IncomeOperation.erpc_PostingDate = $.datepicker.parseDate('dd.mm.yy', $('#tr-date').val());
}
else {
IncomeOperation.erpc_PostingDate = new Date();
}
counter++;
CrmRestKit.Update("erpc__financial_transaction", checked[i].Id, IncomeOperation) // REST запрос
.done(function (data, status, xhr) {
if (--counter <= 0 && allOperationsHasBeenSended) {
alert('Оплаты подтверждены');
// window.close();
// cb(null, counter);
}
}).fail(function (xhr, status, ethrow) {
console.log('Error: ' + status + ': ' + xhr.statusText + '.');
});
// cb(null, counter);
})
})(i);
}
async.waterfall(funcArr, function (err, result) {
console.log(result);
} );
allOperationsHasBeenSended = true;
});
}
Я не пойму, что мне надо передавать в колбэки в моем случае и где их прописывать , если я при успешном запросе обновляю записать в системе строкой в методе done.
CrmRestKit.Update("erpc__financial_transaction", checked[i].Id, IncomeOperation)
.
Может кто подсказать?!