[問題] Function內變數問題

看板Ajax作者 (靜...)時間12年前 (2012/03/21 17:18), 編輯推噓4(404)
留言8則, 4人參與, 最新討論串1/1
小弟的code大致如下 myjs.js function getID(){ var id; $.ajax({ url: 'control.php', type: 'POST', dataType: 'text', data: {act: 'add'}, error: function(res){ id = -1; //這邊的id為integer }, success: function(res){ id = parseInt('0'+res,10); //這邊的id為integer } }); return id; //在這邊 id變成undefined } 爬文看到板上的大大有人提到可使用全域變數來解決問題 但有其它的方式可將 return id那邊的值 抓到上面funcion中的存入值嗎?? 在此先謝謝各位大大的指點~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.22.18.32

03/21 17:20, , 1F
你的AJAX還沒走完就先return了,所以才會 undefined
03/21 17:20, 1F

03/21 17:23, , 2F
多傳個 function 進去 getID() 當作 callback 執行吧
03/21 17:23, 2F

03/21 17:24, , 3F
不然就把 AJAX 改成非同步... $.ajax({ async: false ...
03/21 17:24, 3F

03/21 17:28, , 4F
原來如此 謝謝大大指點
03/21 17:28, 4F

03/21 20:31, , 5F
我記得之前用非同步AJAX 結果後端回應比較慢
03/21 20:31, 5F

03/21 20:32, , 6F
瀏覽器在等後端傳回資料時就卡在那裏不能動
03/21 20:32, 6F

03/21 20:32, , 7F
資料傳到了才可以動...
03/21 20:32, 7F

03/30 19:25, , 8F
用Deferred Object不推薦用async: false
03/30 19:25, 8F
文章代碼(AID): #1FQPpQmn (Ajax)