Untitled
unknown
plain_text
a year ago
1.4 kB
3
Indexable
/** * Makes parallel HTTP requests to the given array of URLs, with a constraint on the number * of simultaneous requests allowed. Once all requests are completed, calls the provided * callback function with an array of text responses in the same order as the input URLs. * * @param {string[]} urls - An array of URLs to make HTTP requests to. * @param {number} limit - The maximum number of simultaneous HTTP requests allowed. * @param {function(string[]): void} callback - The callback function to be called with an * array of text responses once all requests are completed. */ function parallelHttpRequests(urls, limit, callback) { // TODO: Implement the function // const data = await fetch() let counter = 0; const result = []; if (!urls.length) { return; } function getUrls() { let counterLimit = 0 fetch(urls[counter]).then((response) => { result[counter] = response getUrls() }); counter++; if (counter !== urls.length - 1) { getUrls() } } parallelHttpRequests(urls, limit, callback); for (let i = 0; i < urls.length; i++) { const url = urls[i]; const response = fetch(url).then(() => { counter--; }); } } // counter += 1 // counter === limit const urls = ["google.com", "yandex.ru", "amz.com"]; const limit = 2; // google.com + google.com = 1 rq // function callback() {}
Editor is loading...
Leave a Comment