你可以使用Promise来封装onload事件,以便在图片加载完成后执行异步操作。以下是一个将图片加载过程封装成Promise的示例:
function loadImage(url) { return new Promise(function(resolve, reject) { var img = new Image(); img.onload = function() { resolve(img); // 图片加载完成,将img对象传递给resolve }; img.onerror = function() { reject(new Error('Image load failed')); // 图片加载失败,reject带上错误信息 }; img.src = url; // 设置图片的src,开始加载图片 }); } // 使用示例 var imageUrl = 'example.jpg'; // 替换成你的图片URL loadImage(imageUrl) .then(function(img) { // 图片加载成功,可以在这里对加载的图片执行操作 document.body.appendChild(img); // 例子中将图片添加到body中 }) .catch(function(error) { // 图片加载失败,可以在这里处理错误 console.error(error); });在这个示例中,loadImage函数返回一个Promise对象。当图片加载完成时,Promise会调用resolve,传递加载完成的图片对象。如果加载失败,Promise会调用reject,传递一个Error对象。这样,你就可以使用.then()和.catch()来处理图片加载的成功和失败情况。
网友回复