Показать сообщение отдельно
  #8 (permalink)  
Старый 10.08.2017, 08:22
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

Сообщение от koha345
Мне кажется, в ходе рекурсии первый вызов не вызывает resolve. Т.е. deffered теряется и никогда не вызывается, а на последнем шаге он вызывается, но возвращается в предыдущий вызов, но там никакого обработчика нет.
Да, что-то я не то предложил. Попробуйте передавать в рекурсивную ф-ю текущий dfd параметром, как-то так:
function initGroupInfo(token, groupArray, groupIDArray, currentGroupIDIndex *!* , dfd_out = false */!* ){

initGroupInfo(token, groupArray, groupIDArray, ++currentGroupIDIndex *!* , dfd */!* );
}else{
    console.log('Загрузка информации о группах завершена');
    if(dfd_out)  *!* dfd_out.resolve(); */!*

if(dfd_out) *!* dfd.done(function(){ dfd_out.resolve(); }); */!*
return dfd.promise();

Последний раз редактировалось Белый шум, 10.08.2017 в 08:30.
Ответить с цитированием