0
我使用defer的.done等待在函數完成之前加載cookie。當我嘗試運行代碼時,它完成並返回undefined。在第一個代碼可以完成之前,似乎.done正在發射。jquery推遲不等待之前調用.done
function getCookie(cookieName){
var value;
var defer = new jQuery.Deferred();
fetchCookie().done(
function(){
return value;
}
);
function fetchCookie(){
chrome.cookies.get(
{
'url':'https://addictedtogether.com/',
'name':cookieName
},
function(data){
console.log(data);
value=data.value;
}
);
return defer.promise();
}
}
//usage
var username=getCookie('username');
該方法工作正常,但我最好想getCookie()函數返回cookie的值,就像我在我的代碼中所述。有沒有一種聰明的方法來強制一個函數等待返回一個值。我知道我可以使用setInterval(),但它似乎過於笨重。謝謝! – devnill
@devnill我不知道除了使用定時器的任何方法。 – serg