简单谈谈js中Promise的用法

首先先推荐一篇博文: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);
    })
  })

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

posted on 2018-03-09 20:33  axel10  阅读(771)  评论(0编辑  收藏  举报