Неправильно работает промис, чяднт?
Нужно обернуть возвращаемые в цикле промисы в массив и в конце вернуть Promise.all(массив)
Это действие запускает ожидание выполнения всех промисов в массиве. Возвращается также промис, у которого можно вызвать
.then(...)
.catch(...)
А вообще предлагаю обратить внимание на нововведение: async/await - с ними жизнь становится в разы проще.
var executeSequence = function(promiseFn, values, acc) {
  if (!values.length) return Promise.resolve(acc);
  var promise = promiseFn(values.shift());
  acc = acc || [];
  return promise.then(function(result) { 
    acc.push(result);
    return executeSequence(promiseFn, values, acc);
  });
};

var requestUrl = function(url) {
return new Promise((resolve, reject) => {
 request(url, function(error, response, body){
    if (error) {
       reject(error);
    }
     resolve(body);
});  
}

executeSequence(requestUrl, ['http://google.com', ...])
  .then(function(response) { 
    // response это массив из body для каждого из url по порядку
  })
  .catch(function(reason) {
    
  });
https://github.com/joliss/promise-map-series