Как загрузить изображения поочередно, если одно не загрузилось, то грузить второе и т.д.?
Есть массив из 4 адресов (обложек видео от ютюба). Сначала грузить первую maxresdefault, если ее нет или она не загрузилась, то грузить вторую и т.д.
const resolutions = ['maxresdefault', 'hqdefault', 'mqdefault', 'sddefault'];
let videoId = 'dQw4w9WgXcQ';
resolutions.forEach(item => {
let url = 'https://i.ytimg.com/vi/'+videoId+'/'+item+'.jpg';
loadImage(url)
.then((img) => {console.log('img ', img); document.body.append(img)})
.catch(error => console.error('error ', error));
});
function loadImage(url){
return new Promise((resolve, reject) => {
const img = new Image();
img.addEventListener('load', e => {
img.naturalWidth <= 240 ? reject(new Error('No image found')) : resolve(img);
});
img.addEventListener('error', () => {
reject(new Error(`Failed to load image's URL: ${url}`));
});
img.src = url;
});
}