Показать сообщение отдельно
  #3 (permalink)  
Старый 17.08.2018, 17:40
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,633

Не получилось у вас убежать от асинхронности
Делать придётся примерно так:
function renderImg(dest, target){
    return jimp.read(dest).then(img => {
      return img.write(target)
    });
};

function oneByOne(array, func, errorCallback) {
  return array.reduce((p, arguments)=> p.then(
      result => func.apply(this, arguments),
      error => {
        if(errorCallback) errorCallback(error);
        return func.apply(this, arguments);
      },
  ), Promise.resolve()); 
};


var argumentsList = list.reduce((array, dest) => {
    for(value in settings){
      array.push([
        dest,
        dest.replace("sources\\products\\", replaceDir  + value + "\\")
      ])
    }
}, []);



oneByOne(argumentsList, renderImg);
__________________
29375, 35
Ответить с цитированием