promise是ES6(ECMA Script6)的新標准,只能在支持ES6的瀏覽器中使用
Promise是一個延時對象,創建延時對象時需要傳入一個函數類型的參數
這個函數有兩個參數:resolve和reject Promise對象會立即執行這個函數。
resolve()函數解決當Promise中異步完成任務時,需要調用resolve來通知promise任務完了
reject()函數解決了當任務失敗時,需要調用reject()來通知promise任務失敗了
promise在創建的時候沒有狀態,通過resolve可以改變為完成狀態,通過reject可以改變為失敗狀態
promise對象的狀態一旦確定,不能再修改
.then()函數設置promise對象任務完成和任務失敗時回調
//一般第一個回調函數是任務完成時回調,第二個回調函數是任務失敗時回調
.catch 設置任務失敗時的回調函數
通過多次調用then可以給任務設置多個完成時的回調函數
//promise支持鏈式調用
//並且會把第一個回調函數的返回值作為下一個回調函數的參數
Promise.race()和Promise.all()的使用