У меня возникли проблемы с получением моей вложенной работы async.each
, и я не уверен, почему я получаю сообщение об ошибке: Error: Callback was already called
, хотя я правильно разместил свои обратные вызовы.Вложенная async.each: «Ошибка: обратный звонок уже был вызван»
checkDefaultOverlap: function(default_shifts, done) {
async.each(default_shifts, function(default_shift, next) {
var subarray = default_shifts.slice(default_shifts.indexOf(default_shift) + 1, default_shifts.length - 1);
async.each(subarray, function(default_shift2, next) {
default_shift.week_days.map(function(day1) {
default_shift2.week_days.map(function(day2) {
if (day1 === day2 &&
default_shift.start <= default_shift2.end && default_shift2.start <= default_shift.end)
next({error: 'The shifts overlap!'});
});
});
next();
}, function(err) {
if (err) next(err);
else next(null);
});
}, function(err) {
if (err) return done(err);
else return done(null);
});
}
}
Любая помощь была бы действительно оценена.
Wow вы обратный вызов Хеллера, пожалуйста, реорганизовать свой код и сделать его более разборчивые человек – jesusgn90
Как 1-й ступени можно удалить внутренний 'async.each()' и заменить его с петлей или декларативной версией петли. – zatziky