September 21st, 2016

(no subject)

Маленький эксперимент: как превратить массив неких значений в цепочку последовательно выполняемых асинхронных функций в js-е. С новым (еще не вошедшим в стандарт) async-await-ом — очень удобно:

const foo = async function (arr) {
  for (let i = 0; i < arr.length; i++) {
    let x = await bar(arr[i]);
    console.log(x);
  }
}

const bar = function (x) {
  console.log('x is', x);
  return new Promise((resolve) => {
    setTimeout(() => resolve(x), 1000);
  })
};

foo([1, 2, 3])


(пример выполнения в бабелевском репле)

(Это мне понадобилось, эксперимента ради, превратить массив урлов в цепочку последовательно выполняемых запросов)