为什么这样调用图片加载,promise 内部的后续代码不会执行了?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>promise-load</title>
</head>
<body>
<script>
function loadImageAsync(url) {
return new Promise((resolve, reject) => {
let img = new Image()
img.src = url
img.onload(()=>resolve(img))
img.onerror(()=>reject())
console.log(3);
})
}
loadImageAsync('https://avatarsabc.githubusercontent.com/u/54520846?s=400&u=5220402538d51b3c67cf208ea16f93cb218fe4d2&v=4').then((imgDom) => {
console.log('success');
document.body.appendChild(imgDom)
}).catch(() => {
console.log('error-Load');
})
</script>
</body>
</html>
为什么console.log(3) 没有执行
回复
1个回答

test
2024-06-27
onload is not function?
报错了吧。
正确的应该是
img.onload = (()=>resolve(img))
img.onerror = (()=>reject())
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容