Как задать задержку для fetch при скачивании более 4000 фото?
Можно в N параллельных «потоков» скачивать. В каждом случайная пауза перед очередным URL:const N = 3;

const delay = ms => new Promise(res => setTimeout(res, ms));

const next = () => {
  if (items.length > 0) {
    return download(items.shift())
      .then(delay(500 + Math.floor(Math.random() * 500))) // случайная пауза между закачками
      .then(next);
  }
};

const works = Array.from({ length: N }, () =>
  Promise.resolve()
    .then(next)
    .catch(console.error)
);

Promise.all(works).then(() => console.log('All Done'));
Задача разовая? Если так, то я бы сформировал файл с урлами и скормил его wget например.