JS閉包非同步獲取資料並快取

2021-09-10 18:11:19 字數 599 閱讀 3911

設想我們需要向介面請求所需資料,又不想儲存在全域性變數中,並且會多次使用,那麼我們就需要將請求的資料儲存起來,當呼叫這個函式的時候,首先在快取中查詢,如果找不到,則呼叫api,然後設定快取並返回值,如果找到了,直接返回查詢到的值即可。閉包正好可以做到這一點,因為它不會釋放外部的引用,從而函式內部的值可以得以保留。

應用示例

const getlist =

(function()

;const

getdata=(

)=>

, success:

function

(rsp)};

ajax

(packageoptions);}

)}// 閉包儲存data

const result =

async

function

(type)')

else

}return result;})

();// 第一次呼叫通過api請求資料

getlist()

.then

(res =>})

;

js閉包函式 獲取區域性變數時

參考 閉包是能夠讀取其他函式內部變數的函式。閉包就是將函式內部和函式外部連線起來的一座橋梁。函式內部可以直接讀取全域性變數。在函式外部無法讀取函式內的區域性變數。functionf1 f1 alert n 999子函式可以一層一層讀取到父元素的變數,反之不行。假如需要得到函式的區域性變數,正常操作是...

js獲取非同步方法裡面的資料

這裡介紹 五種方法 說白了本質 就三種 1.callback 函式 function getdata callback 1000 getdata data 2.promise來處理非同步 resolve成功的 函式 reject失敗的 函式 var p new promise resolve,rej...

js動態繫結資料的閉包問題

以檔案上傳舉例,迴圈繫結資料時只顯示第乙個固定資料 解決方案 後台迴圈得到siteid和examinationroomid數值,按鈕採用拼接方法顯示在頁面上 e.setuploadcheckinrecord 上傳考場 js函式 使用button的點選事件接收資料並定義為全域性變數,input框使用o...