作者mrbigmouth (拒絕崩潰的蒲公英)
看板Ajax
標題Re: [問題] 儲存 fb.api 的 callback 的值
時間Thu Dec 20 15:59:23 2012
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
1F:→ dlikeayu:我來試試!先感謝你的回應!!! 12/20 16:44
2F:→ dlikeayu:啊,只是這樣不是變成是自訂義的callback去包fb的 12/20 16:48
3F:→ dlikeayu:似乎還是不行只call test.getUser() 就一次拿到值 12/20 16:49
4F:→ dlikeayu:async好惱人啊 >< 12/20 16:51
5F:→ dlikeayu:可能我上篇沒說清楚,我想在自訂義fnc直接呼叫一次就 12/20 16:51
6F:→ dlikeayu:return 我要的值,不然類似於自訂義再callback永遠就只 12/20 16:52
7F:→ dlikeayu:能在子method裏面去call fnc直接拿值做其它事,而無法 12/20 16:53
8F:→ dlikeayu:存在var, obj, array 等.. 12/20 16:53
9F:→ waneblade:test.getUser().done 少了括孤 async就是沒辦法一次到位 12/21 03:27
※ 編輯: mrbigmouth 來自: 122.116.190.145 (12/21 09:00)
10F:→ mrbigmouth:如樓上所說 async就是沒辦法一次到位....你可以想辦法 12/21 09:01
11F:→ mrbigmouth:拆fb的程式碼改成sync的看看 12/21 09:01
12F:→ dlikeayu:有看到jquery的$.when 但似乎只能吃ajax相關的事件 12/21 09:01
13F:→ mrbigmouth:但這樣的後果就是....loading過程裡使用者會什麼事都無 12/21 09:01
14F:→ mrbigmouth:法做....連捲卷軸都不行! 12/21 09:01
15F:→ mrbigmouth:$.when可以吃deferred物件啊 但終就還是弄出字定義函 12/21 09:02
16F:→ mrbigmouth:數去包而已 12/21 09:02
17F:→ mrbigmouth:$.when(test.getUser()).done(function(result){ }) 12/21 09:02
18F:→ mrbigmouth:這樣跟我給的有啥不同?XD 多此一舉 12/21 09:02