美文网首页
前端JS进阶三(ES6-Promise语法)

前端JS进阶三(ES6-Promise语法)

作者: EmilioWeng | 来源:发表于2018-08-08 16:19 被阅读0次

Callback Hell

  function loadImg(src,callback,fail){
      var img = document.createElement('img')
      img.onload = function(){   //图片加载成功
          callback(img)
      }
      img.onerror = function(){   //图片加载失败
          fail()
      }
      img.src = src
  }

  var src = 'http://www.imooc.com/static/img/index/logo_new.png'
  loadImg(src,function(img){
      console.log(img.width)
  },function(){
      console.log('failed')
  })

Promise语法

  function loadImg(src){
      const promise = new Promise (function (resolve,reject){
          var img = document.createElement('img')
          img.onload = function(){
              resolve(img)
          }
          img.onerror = function(){
              reject()
          }
          img.src = src
      })
      return promise
  }

  var src = 'https://www.imooc.com/static/img/index/logo_new.png'
  var result = loadImg(src)
  result.then(function(img){
      console.log(img.width)
  },function(){
      console.log('failed')
  })
  result.then(function(img){
      console.log(img.height)
  },function(){
      console.log('failed')
  })

总结

  • new Promise实例,而且要return
  • new Promise 时要传入函数,函数有 resolve reject 两个参数
  • 成功时执行 resolve() 失败时执行 reject()
  • then 监听结果

相关文章

网友评论

      本文标题:前端JS进阶三(ES6-Promise语法)

      本文链接:https://www.haomeiwen.com/subject/txkxbftx.html