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