zoukankan      html  css  js  c++  java
  • Promise场景实例之图片加载

    • 所有图片加载完再添加到页面

    在这里插入图片描述

    {
      // 所有图片加载完再添加到页面
      function loadImg(src) {
        return new Promise(function (resolve, reject) {
          let img = document.createElement('img')
          img.src = src
          img.onload = function () {
            resolve(img)
          }
          img.onerror = function (err) {
            reject(err)
          }
        })
      }
    
      function showImgs(imgs) {
        imgs.forEach(img => {
          document.body.appendChild(img)
        });
      }
      Promise.all([ // 所有图片加载完后执行
        loadImg('http://pic37.nipic.com/20140113/8800276_184927469000_2.png'),
        loadImg('http://pic37.nipic.com/20140113/8800276_184927469000_2.png'),
        loadImg('http://pic37.nipic.com/20140113/8800276_184927469000_2.png')
      ]).then(showImgs)
    }
    

    • 有一个图片加载完成就添加到页面

    多个图片服务器, 加载最快的一个

    在这里插入图片描述

    {
      // 多个图片服务器, 加载最快的一个
      // 有一个图片加载完成就添加到页面
      function loadImg(src) {
        return new Promise((resolve, reject) => {
          let img = document.createElement('img')
          img.src = src
          img.onload = function () {
            resolve(img)
          }
          img.onerror = function () {
            reject(err)
          }
        })
      }
      function showImg(img){
        document.body.appendChild(img)
      }
    
      Promise.race([ // 谁先请求到 就显示谁
        loadImg('http://img2.imgtn.bdimg.com/it/u=234634259,4236876085&fm=26&gp=0.jpg'),
        loadImg('http://img4.imgtn.bdimg.com/it/u=2153937626,1074119156&fm=26&gp=0.jpg'),
        loadImg('http://img1.imgtn.bdimg.com/it/u=1483033257,4287748004&fm=26&gp=0.jpg')
      ]).then(showImg)
    }
    
  • 相关阅读:
    [CF1028D] Order book
    初入python,与同学者的第一次见面(小激动)
    jira与mysql的配合搭建调整
    linux内置的审计跟踪工具------last和lastb
    rman
    nginx和apache的一些比较
    NYOJ128前缀式计算
    NYOJ2括号配对问题
    大数加减乘以及高精度幂
    在不同的页面之间通过查询字符串传递信息
  • 原文地址:https://www.cnblogs.com/izhaong/p/12154283.html
Copyright © 2011-2022 走看看