function endcodeBase64(value) {
return btoa(unescape(encodeURIComponent(value)));
}
function decodeBase64(value) {
return decodeURIComponent(escape(atob(value)));
}
const urls = [
'https://picsum.photos/id/345/2000/2000',
'https://picsum.photos/id/347/2000/2000',
'https://picsum.photos/id/349/2000/2000',
'https://picsum.photos/id/320/2000/2000',
'https://picsum.photos/id/351/2000/2000',
'https://picsum.photos/id/372/2000/2000'
]
urls.forEach(url => {
createImage(url).then(image => {
document.body.append(image)
console.log({
width: image.clientWidth,
hight: image.clientHeight
});
}).catch(image => {
console.error('Ошибка загрузки картинки')
})
})
function createImage(url) {
return new Promise((resolve, reject) => {
const image = document.createElement('img')
image.src = url
image.addEventListener('load', () => resolve(image), { once: true })
image.addEventListener('error', () => reject(image), { once: true })
});
}
let li = document.querySelectorAll("ul > li")
или let request={};
, зачем тогда let? Когда другой программист читает такой код, он подумает что потому где-то будет li = false
, например.eslint: one-var
])