老师帮我看一下这个代码,注释理解对不对?
相关代码:
<style>
#img {
margin: 10px auto;
padding: 20px;
}
</style>
</head>
<body>
<img
src="https://img1.sycdn.imooc.com//5e6af63d00011da318720764.jpg"
alt=""
id='img'
>
<script>
// 异步加载图片
// 路径函数
const loadImgAsync=url=>{
// 有成功加载也会失败加载所以返回一个promise
return new Promise((resolve,reject)=>{
// 这个函数不怎么理解是用来接收传入的参数吗?代表加载的图片?
const img=new Image()
img.onload=()=>{
resolve(img);
};
img.onerror=()=>{
reject(new Error(`Could not load image at ${url}`));
};
// 传入的参数赋值给这个new的Image
img.src=url;
});
};
const imgDOM=document.getElementById('img');
// 传入图片路径参数,返回的是一个新的promise
loadImgAsync('https://2img.mukewang.com/5f057a6a0001f4f918720764.jpg')
.then(
(img)=>{
console.log(img.src);
setTimeout(()=>{
imgDOM.src=img.src;
},2000);
}).catch(
(err)=>{
console.log(err);
})
</script>
</body>
代码实现不了,视频老师给的传入的路径那个图片不见了,所以就没了
16
收起
正在回答
2回答
同学你好,解答如下:
1、老师是故意把图片路径写错的,是为了给同学演示打印错误信息,正确的路径是:https://img1.sycdn.imooc.com//5f057a6a0001f4f918720764.jpg
2、注释是对的。
3、是不理解new Image()吗?如果是的话,那么解答如下:
new Image()是创建一个Image对象。在loadImgAsync方法中,先创建图片对象,绑定事件,给src属性赋值,赋值之后,图片路径是正确的会执行load方法,反之则执行error方法。
如果不是上述疑问,可以详细描述一下,老师帮助解答~
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星