看板 Ajax 關於我們 聯絡資訊
var test = { getUser: function(){ var result = new $.Deferred(); fb.api('/me', function(r){ test.getUserResult = r; result.resolve(r); }); return result; } } test.getUser().done(function(result) { //在這裡使用result }); 以jQuery的Deferred物件用起來大概就像這樣吧 沒特別仔細想,也許有其他方法 但差不多就像這樣 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.190.145
dlikeayu:我來試試!先感謝你的回應!!! 12/20 16:44
dlikeayu:啊,只是這樣不是變成是自訂義的callback去包fb的 12/20 16:48
dlikeayu:似乎還是不行只call test.getUser() 就一次拿到值 12/20 16:49
dlikeayu:async好惱人啊 >< 12/20 16:51
dlikeayu:可能我上篇沒說清楚,我想在自訂義fnc直接呼叫一次就 12/20 16:51
dlikeayu:return 我要的值,不然類似於自訂義再callback永遠就只 12/20 16:52
dlikeayu:能在子method裏面去call fnc直接拿值做其它事,而無法 12/20 16:53
dlikeayu:存在var, obj, array 等.. 12/20 16:53
waneblade:test.getUser().done 少了括孤 async就是沒辦法一次到位 12/21 03:27
※ 編輯: mrbigmouth 來自: 122.116.190.145 (12/21 09:00)
mrbigmouth:如樓上所說 async就是沒辦法一次到位....你可以想辦法 12/21 09:01
mrbigmouth:拆fb的程式碼改成sync的看看 12/21 09:01
dlikeayu:有看到jquery的$.when 但似乎只能吃ajax相關的事件 12/21 09:01
mrbigmouth:但這樣的後果就是....loading過程裡使用者會什麼事都無 12/21 09:01
mrbigmouth:法做....連捲卷軸都不行! 12/21 09:01
mrbigmouth:$.when可以吃deferred物件啊 但終就還是弄出字定義函 12/21 09:02
mrbigmouth:數去包而已 12/21 09:02
mrbigmouth:$.when(test.getUser()).done(function(result){ }) 12/21 09:02
mrbigmouth:這樣跟我給的有啥不同?XD 多此一舉 12/21 09:02