簡體   English   中英

從ajax調用設置變量

[英]Setting a variable from ajax call

讓我們說清楚。 這就是我想要做的:我有一堆從服務器獲取的用戶數據。 我想緩存數據,以避免每次需要電子郵件或用戶名時都向服務器發出請求。

因此,我將構建諸如getEmail,getUsername之類的函數,這些函數使Ajax調用一次並將其保存在一個對象中。 如果再次調用該函數,它將返回緩存的對象。

該應用程序分為模塊。 應用包含數據。 這是小提琴: http : //jsfiddle.net/Osoascam/Nk6aw/

(打開控制台以查看結果)

當然要做這樣的事情:

var email = Module.Utilities.getEmail();

這是錯誤的,因為getEmail將調用Ajax函數,因此即使調用完成后,電子郵件也將保持未定義狀態。 (我把它放在小提琴中以顯示我要實現的目標)。 但是,我無法在getEmail()函數或調用Ajax的函數中設置變量,因為幾個腳本必須能夠調用該函數並相應地設置其變量。

最好的方法是什么? 使通過Ajax調用返回對象的一部分的函數以僅進行一次調用的方式進行...

提前致謝,

奧斯卡

默認情況下,Ajax請求是異步的。 因此, getEmail()應該接受一個回調參數...

Module.Utilities.getEmail = function(next) {
  $.get('/api/getEmail/', function(res) {
    next(res);
  });
};

// when calling the function
Module.Utilities.getEmail(function(email) {
  console.log(email);
});

也就是說,您也可以研究同步ajax請求 ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM