Отправить много параллельных запросов на выборку (больше, чем максимальная поддержка браузера) - PullRequest
2 голосов
/ 06 января 2020

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

Promise.all([allpromisses])

или любые другие решения, такие как:

    function fetchAll(urls) {
        const requestPromises = urls.map(url => {
          return fetch(url).then(response => response.json());
        });
    
        requestPromises.reduce((chain, requestPromise) => {
          return chain.then(() => requestPromise)
            .then(data => data);
        }, Promise.resolve());
      }

или

getBunch([promises1]).then(getBunch([promises2]). ...

1 Ответ

1 голос
/ 06 января 2020

Если вы не хотите продолжать до тех пор, пока не вернутся все выборки, стоит просто использовать Promise.all() и позволить браузеру обрабатывать очереди запросов. Одна приятная вещь заключается в том, что Promise.all() быстро «провалится». Это означает, что если вы не обрабатываете ошибки отдельно, одно невыполненное обещание отклонит Promise.all().

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all#Promise .all_fail-fast_behaviour

...