简单谈谈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); }) })
虽然代码量多了些,但是维护起来明显会更加方便。