我的頁面上有一個表單。當用戶點擊發送按鈕時,它在後臺也會通過調用一個產生這個數字的函數來產生一個unique_number,並在數據庫中檢查這個數字不存在;如果它確實 - 再次生成它,如果不是 - 返回這個數字。但是,由於某種原因,當我試圖將這個數字打印出來,或者提醒它 - 我得到undefined
,雖然函數返回數字。 這裏的調用該函數:調用函數返回'undefined'
var unique_num = create_unique_number();
alert(unique_num);
rest of this function...
而這裏的函數本身:
function create_unique_number()
{
var num = Math.floor(Math.random() * (999999 - 100000 + 1)) + 100000;
$.getJSON("inc/API.php",
{
command:"is_unique_number_exist",
unique_num:num
},
function(result){
if(result==true){
create_unique_number();
}
else
{
return num;
}
});
}
我得到的結果,如果這是真的 - 它會產生新的號碼,如果假 - 應該返回。我試圖alert
else
部分中的數字,它確實警告數字,但在返回 - 未定義。 爲什麼會發生,以及如何解決它?
只有getJson的回調函數返回num,create_unique_number函數中沒有返回值。 –
請注意,服務器端選擇一個唯一的號碼會更快。使用較少的網絡,服務器上的工作量相似。 – Liosan
希望這個網站有一個「撤回近距離投票」選項 - 這個功能的遞歸部分使解決方案相當,呃,有趣... – Alnitak