У меня следующий код, где я ожидаю определенный результат в строке console.log (result);// G1: не определено G2: не определено Но становится неопределенным для всех ключей
мои потоки вызовов, такие как callTest1 -> processGroup () -> checkDetails () checkDetails () вернут ошибку, которая перехватит processGroup() и установить сообщение об ошибке для групп и вернуться к callTest1 ()
Я сделал отладку, processGroup () возвратил обновленные группы, но callTest1 () все еще имеет неопределенное значение
function callTest1(authorizationHeader, form, customer, callback) {
let isTeams = form.orderType.serviceTypes.Teams ? true : false;
if (isTeams) {
var group = _.pick(form, ['outGroups']);
var outGroups = _.groupBy(group.outGroups, function (trunk) {
return group.name;
});
Promise.props(_.mapValues(outGroups, processGroup.bind(null, form, customer, authorizationHeader)))
.then(function (result) {
// the values will be collected here.
console.log(result); // G1 : undefined G2 : undefined
});
} else {
callback(null, form, customer);
}
}
function processGroup(form, customer, authorizationHeader, groups, key) {
console.log('processGroup key ', key);
async.waterfall([
async.apply(checkDetails, authorizationHeader, form, customer, group)//,
//async.apply(callTest3, authorizationHeader, form, group),
], function (result) {
groups = _.map(groups, function (group) {
group.groupError = result.groupError;
return groups;
});
return groups;
});
}
function checkDetails(authorizationHeader, form, customer, group, callback){
//some code
callback(err);
}