1. const url = 'https://xxx.png'
    2. function loadImg(src) {
    3. return new Promise(
    4. (resolve, reject) => {
    5. const img = document.createElement('img')
    6. img.onload = () => {
    7. resolve(img)
    8. }
    9. img.onerror = () => {
    10. const err = new Error(`图片加载失败 ${src}`)
    11. reject(err)
    12. }
    13. img.src = src
    14. }
    15. )
    16. }
    17. loadImg(url).then(img => {
    18. console.log(img.width)
    19. return img
    20. }).then(img => {
    21. console.log(img.height)
    22. }).catch(err => console.error(ex))
    1. // 多张图片
    2. const url1 = 'https://xxx.png'
    3. const url2 = 'https://xxx.png'
    4. function loadImg(src) {
    5. return new Promise(
    6. (resolve, reject) => {
    7. const img = document.createElement('img')
    8. img.onload = () => {
    9. resolve(img)
    10. }
    11. img.onerror = () => {
    12. const err = new Error(`图片加载失败 ${src}`)
    13. reject(err)
    14. }
    15. img.src = src
    16. }
    17. )
    18. }
    19. loadImg(url1).then(img => {
    20. console.log(img1.width)
    21. return img1 // return 普通对象
    22. }).then(img1 => {
    23. console.log(img1.height)
    24. return loadImg(url2) // return promise 实例
    25. }).then(img2 => {
    26. console.log(img2.height)
    27. return img2
    28. }).then(img2 => {
    29. console.log(img2.width)
    30. })