首先先推荐一篇博文:http://blog.csdn.net/jasonzds/article/details/53717501

这篇博文很清晰的说明了Promise的用法,这里来简单总结一下:

Promise主要用来让连续的回调变得清晰。比如:

连续获取豆瓣电影数据:

  $.get("https://api.douban.com/v2/movie/top250?count=5",function (data) {
    console.log(data);
    $.get("https://api.douban.com/v2/movie/coming_soon?count=5",function (data) {
      console.log(data);
      $.get("https://api.douban.com/v2/movie/in_theaters?count=5",function (data) {
        console.log(data);
      })
    })
  })

这样写的话代码一复杂就会非常乱。如何用Promise来简化它呢?

  new Promise(function (resolve, reject) {
    $.get("https://api.douban.com/v2/movie/top250?count=5",function (data) {
      resolve(data)
    })
  }).then(function (res) {
    console.log(res); //这里获取到的是resolve(data)里的data。
    return $.get("https://api.douban.com/v2/movie/coming_soon?count=5",function (data) {
      return data
    })
  }).then(function (res) {
    console.log(res); //这里获取到的是上一个then中return回来的数据
    $.get("https://api.douban.com/v2/movie/in_theaters?count=5",function (data) {
      console.log(data);
    })
  })

虽然代码量多了些,但是维护起来明显会更加方便。

相关文章:

  • 2021-12-14
  • 2022-12-23
  • 2021-12-03
  • 2018-11-20
  • 2019-01-20
  • 2021-07-01
猜你喜欢
  • 2021-09-27
  • 2022-12-23
  • 2022-12-23
  • 2022-01-08
  • 2021-08-27
  • 2021-07-06
  • 2020-12-24
相关资源
相似解决方案