Вы можете предварительно загрузить изображения в виде BLOB-объектов, а затем использовать URL-адреса BLOB-объектов. Вы можете использовать XHR-запрос (вы можете использовать xhr.responseURL для загрузки BLOB-объектов) или получить API-интерфейс (полифилл доступен).
let convertUrlToImage = (url) => {
return fetch(url).then((response) => {
if (response.redirected) {
console.log(`redirected to [${response.url}]`)
}
return response.blob();
}).then((imageBlob) => {
return new Promise((resolve) => {
var image = new Image();
image.src = URL.createObjectURL(imageBlob);
image.onload = function() {
resolve(image)
}
});
});
}
let images = ["flor.jpg", "animal.jpg", "human.jpg"];
let imagesPromises = images.map(convertUrlToImage);
Promise.all(imagesPromises).then((images) => {
//do whatever with images: Image[];
});
Вы можете настроить выборку, чтобы она следовала или не следовала за перенаправлениями, см .: https://developer.mozilla.org/en-US/docs/Web/API/Response/redirected