Я пытаюсь узнать, как сделать SuperMario на JavaScript из здесь
Может кто-нибудь объяснить поток нижеприведенной функции LoadImage?
function loadImage(url) {
return new Promise(resolve => {
const image = new Image();
image.addEventListener('load', () => {
resolve(image);
});
image.src = url;
});
}
const canvas = document.getElementById('screen');
const context = canvas.getContext('2d');
context.fillRect(0,0,50,50);
loadImage('/img/tiles.png')
.then(image=>{
context.drawImage(image,0,0); // the function LoadImage returns a Promise with image object(which is a constant)
// as parameter and if the promise is fulfilled then the image is drawn.
/
});
EDIT
Я понимаю, как использовать оператор =>.
Который используется для уменьшения длины функций.
image.addEventListener('load', () => {
resolve(image);
строка выше означает, что обещание выполняется при загрузке изображения.
Значит ли это, что следующая строка выполняется, а затем прослушиватель событий ожидает загрузки изображения в браузер клиента?
image.scr = url;
Поток функции ниже немного неясен для меня
function loadImage(url) {
return new Promise(resolve => {
const image = new Image();
image.addEventListener('load', () => {
resolve(image);
});
image.src = url;
});
РЕДАКТИРОВАТЬ 2:
Хорошо, это был глупый пост. И да, поскольку ИЗОБРАЖЕНИЕ из URL-адреса загружается в объект изображения, тогда прослушиватель событий запускает функцию resol ().