Promise不是把異步變成了同步請求吧?
使用promise后,各個then都是等前一個執行結束后才執行下一個,那么ajax異步的意義不是就不存在了嗎?我舉個例子問吧。
比如現在我有三個ajax請求,promiseAjax(xx,xx).then().then(),
第一個ajax返回結果后,再執行第二個ajax,等第二個返回結果后再執行第三個,同時,如果下一個ajax的數據依賴上一個,可直接使用then中返回的數據
總感覺理解不對,不應該是這樣,社區流行出來的智慧應該會比以前的好的。
使用promise后,各個then都是等前一個執行結束后才執行下一個,那么ajax異步的意義不是就不存在了嗎?我舉個例子問吧。
比如現在我有三個ajax請求,promiseAjax(xx,xx).then().then(),
第一個ajax返回結果后,再執行第二個ajax,等第二個返回結果后再執行第三個,同時,如果下一個ajax的數據依賴上一個,可直接使用then中返回的數據
總感覺理解不對,不應該是這樣,社區流行出來的智慧應該會比以前的好的。
2017-08-29
舉報
2017-08-30
說一下我的理解,Promise沒有把異步變同步,只是以同步的方式來寫異步,使用promise,當代碼執行到resolve時跳到下一步的then方法中依次執行,執行到reject時跳到catch方法依次執行;上一步then方法中返回的值可以是一個新的Promise也可以是某一固定值,為新的Promise時會根據其resolve和reject來進行下一步的代碼執行,當為固定值時會把該值傳給下一步的then方法參數使用。
Ajax解決的是網頁異步刷新問題,完全可以在Promise中嵌套使用ajax。