老师帮我看一下这个代码,注释理解对不对?

老师帮我看一下这个代码,注释理解对不对?

相关代码:

 <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>​

代码实现不了,视频老师给的传入的路径那个图片不见了,所以就没了

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,解答如下:

1、老师是故意把图片路径写错的,是为了给同学演示打印错误信息,正确的路径是:https://img1.sycdn.imooc.com//5f057a6a0001f4f918720764.jpg

2、注释是对的。

3、是不理解new Image()吗?如果是的话,那么解答如下:

new Image()是创建一个Image对象。在loadImgAsync方法中,先创建图片对象,绑定事件,给src属性赋值,赋值之后,图片路径是正确的会执行load方法,反之则执行error方法。

如果不是上述疑问,可以详细描述一下,老师帮助解答~

祝学习愉快~

  • 明白了,一开始有点疑惑,后来有点明白。就是创建路径函数,路径函数是返回一个promise,在promise里边创建一个图片对象,设置图片加载成功与否的状态,给创建的图片对象的src赋值(传入的参数),参数对就执行resolve就接着执行相应的then是这样吧?路径我改过来了,效果是对的

    2021-06-07 18:17:04
好帮手慕言 2021-06-07 18:49:38

同学你好,理解的是对的,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师