首先先推薦一篇博文:http://blog.csdn.net/jasonzds/article/details/53717501 這篇博文很清晰的說明瞭Promise的用法,這裡來簡單總結一下: 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); }) })
雖然代碼量多了些,但是維護起來明顯會更加方便。