내 페이지에 양식이 있습니다. 사용자가 보내기 버튼을 눌렀을 때 백그라운드에서이 번호를 생성하는 함수를 호출하여 unique_number를 생성하고 DB에이 번호가 존재하지 않는지 검사합니다. 있는 경우 - 다시 생성하고, 그렇지 않으면 -이 숫자를 반환합니다. 그러나 어떤 이유로이 번호를 페이지에 인쇄하려고 할 때 또는 경고 할 때 - 함수가 숫자를 반환하지만 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