我的理論可能會有點弱,所以請隨時告訴我。Javascript Kango:如何在非異步函數中獲取異步JS函數的返回值?
此代碼是使用Kango framework的瀏覽器插件的一部分。基本上我有代碼生成一個用戶ID的隨機字符串。我還有另外一個設置JSON的函數。它看起來像這樣:
function createJSON() {
data = {};
data["userID"] = generateID();
}
function generateID() {
kango.invokeAsync('kango.storage.getItem', 'userID', function(data) {
uid = data;
if (!uid) {
console.log("uid doesn't exist, creating uid!");
kango.invokeAsync('kango.storage.setItem', userID, function(data) { return data; });
} else {
console.log("uid found!: " + uid);
return uid;
}
return data;
});
}
kango.invokeAsync docs are here。我的理解是它有點像一個異步ajax調用,在這種意義上,它不會及時返回,當我試圖將其值賦給數據[「userID」]時。
我想我可以通過先做userID調用,然後使用它的回調(在這裏對術語有些模糊)來繼續並添加到數據數組來解決此問題。
我不知道,如果這是正確的方式來做到這一點,雖然。我如何獲得異步函數的返回值?
請做n不要使用標題作爲標籤的位置。 SO的標記系統工作正常。乾杯。 – Kgrover