目的:使多個ajax程序能有序的執行,而不是非同步同時執行
第一步:給第乙個ajax所在的函式(ajax1)傳遞乙個success引數(函式),當ajax執行完之後,呼叫success()函式。
第二步:如果後面還有要順序執行的非同步程式,可以參照第一步。
第三步:new promise(ajax1()).then(ajax2);
第四步:如果有多個ajax(非同步)需要順序執行,
new promise(ajax1).then(function
()).then(function
()).then(ajax4);
over:這樣就完成了非同步的程序完成順序執行的要求
事例:非同步使用settimeout代替
function
func1
(success),1000)
}function
func2
(success),1000)
}function
func3
(success),1000)
}function
func4
(),1000)
}new promise(func1).then(function
()).then(function
()).then(func4);
擴充套件promise.all:有三個非同步必須都執行完後,才能執行第四個非同步
promise.all( [new promise(func1), new promise(func2), new promise(func3)]).then(func4);
擴充套件:promise.race():三個非同步中有乙個執行完之後就執行第四個
promise.race( [new promise(func1), new promise(func2), new promise(func3)]).then(func4);
Promise解決非同步載入的問題
1.首先的明白什麼是同步,什麼是非同步 同步載入 程式按順序執行,在上乙個程式執行完之前,不會執行其他的程式,叫單執行緒 非同步載入 例如 a程式執行的同時b程式也在執行 問題 我再用vue框架的時候遇到乙個問題,頁面初始化開始就要載入兩個方法,而這兩個方法其中的乙個需要用到另乙個的方法請求到的資料...
非同步promise機制
1.promise鏈 const setdelay millisecond 毫秒後輸出的 millisecond const setdelaysecond seconds 秒,一共需要延遲 秒 resolve setdelay 2000 這裡依賴上乙個promise seconds 1000 set...
Promise 非同步程式設計
promise 是非同步程式設計的解決方案,他代表承諾,便是一定會丟擲兩種狀態,狀態一經確定就不會改變 編譯成功 resolve value 為 必選 編譯失敗 reject error 可選 使用then 接收正確的丟擲 then 後面接 catch function error 可以簡寫為fun...