Следующий код работает как обещание, но я не вижу, как преобразовать его в async / await, учитывая обработчики событий onload / error ... Любая помощь приветствуется. И прежде чем вы спросите, нет, это не сломалось, но это может быть более читабельным. :)
function youtubeExists(vid) {
return new Promise(function (resolve, reject) {
const img = new Image();
img.onload = () => {
//default error image is 120px, correct width is 320px, when attemptiong mqdefault.jpg
if (img.width === 120) reject();
else resolve();
};
img.onerror = reject;
img.src = '//img.youtube.com/vi/' + vid + '/mqdefault.jpg'; //important
});
}