Как мне разобрать и извлечь неопрятные данные Excel?

Redgeoff, ваш собственный ответ - это способ, которым я использовал для перевести массив в цепочку цепочек обещаний.

Созданный шаблон de facto выглядит следующим образом:

function doAsyncSeries(arr) {
    return arr.reduce(function (promise, item) {
      return promise.then(function(result) {
        return doSomethingAsync(result, item);
      });
    }, $q.when(initialValue));
}

//then
var items = ['x', 'y', 'z'];
doAsyncSeries(items).then(...);

Примечания:

  • .reduce является необработанным javascript, а не частью библиотеки.
  • result is предыдущий асинхронный результат / данные и включен для полноты. Начальным result является initialValue. Если нет необходимости передавать «результат», то просто оставьте его.
  • адаптируйте $q.when(initialValue) в зависимости от того, какой обетованный lib вы используете.
  • в вашем случае, doSomethingAsync есть foo (или что возвращает foo ()?) - в любом случае, функция.

Если вы похожи на меня, тогда картина будет выглядеть, на первый взгляд, как непроницаемая клаузула но как только ваш глаз будет настроен, вы начнете рассматривать его как старого друга.

Редактировать

Вот демон , предназначенный для демонстрации того, что шаблон, рекомендованный выше, фактически выполняет свои doSomethingAsync() вызовы последовательно, а не сразу при создании как указано в комментариях ниже.

0
задан cybernetic.nomad 17 February 2019 в 23:05
поделиться