Promise解決AJAX非同步問題

2021-08-07 21:28:23 字數 1172 閱讀 8465

目的:使多個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...