KorniloFF
@KorniloFF
Работаю по font-end / JS

Создать цепочку промисов незвестной длины?

Здравствуйте!
Сможет кто-то помочь написать функцию, скажем chainPromises, принимающую массив скриптов неизвестной длины в качестве аргумента, исполняющую каждый из скриптов, и возвращающую единый Промис, обещающий загрузку каждого из них.

С Промисами не работал, поэтому сам ничего путного пока сделать не смог.

var chainPromises = function(scripts) {
		var i = scripts.shift(),
			s = document.createElement('script');
		s.async = false;
		s.src = i.src;
		document.head.appendChild(s);

// ...
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const chainScripts = src => src.reduce((acc, n) => {
  return acc.then(() => new Promise((resolve, reject) => {
    const s = document.createElement('script');
    s.onload = resolve;
    s.onerror = reject;
    s.src = n;
    document.head.appendChild(s);
  }));
}, Promise.resolve());
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы