異步回調會面臨的四個問題:
提出的解決方案:Promise
new Promise(
// 執行器executor
function(resolve, reject) {
// 一段耗時很長的異步操作
resolve(); // 數據處理完成
reject(); // 數據處理出錯
}
).then(function A() {
// 成功,下一步
}, function B() {
// 失敗,做相應處理
})
Promise有3個狀態:
pending[待定] 初始狀態
fulfilled[實現] 操作成功
rejected[被否決] 操作失敗
當Promise狀態發生改變,就會觸發.then()裏的響應函數處理後續步驟。
Promise狀態一經改變,就不會再變。