[問題] 關於Closure、callback及IIFE的問題
01 var a = "";
02
03 arrFoo.forEach(function(bar){
04 var res = (function(){
05 asyncFunction(function(response){
06 return response;
07 });
08 })();
09
10 a += response;
11 });
12
13 alert(a);
今天一整天都在研究Closure跟IIFE之間的關係,結果還是沒有成功。
以上述的code為例,我想要把asyncFunction回傳的res全部都併在a裡面,
可是無論我有沒有加L4跟L8,最後在L13的alert卻仍然為空白(就是L1的預設值"")
請問有朋友知道這該如何處理嗎?(明天到公司繼續啃相關文件)
--
雜七雜八的kewang部落格 http://kewang.tw
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.3.53
※ 編輯: kewang 來自: 220.134.3.53 (09/01 23:24)
推
09/01 23:25, , 1F
09/01 23:25, 1F
→
09/01 23:26, , 2F
09/01 23:26, 2F
→
09/01 23:27, , 3F
09/01 23:27, 3F
→
09/01 23:27, , 4F
09/01 23:27, 4F
→
09/01 23:27, , 5F
09/01 23:27, 5F
→
09/01 23:40, , 6F
09/01 23:40, 6F
01 var a = "";
02
03 arrFoo.forEach(function(bar){
04 (function(){
05 asyncFunction(function(response){
06 a += response;
07 });
08 })();
09 });
10
11 alert(a);
一開始的寫法是這個樣子,結果L11一樣是顯示為空白 Orz
※ 編輯: kewang 來自: 220.134.3.53 (09/01 23:49)
推
09/01 23:50, , 7F
09/01 23:50, 7F
→
09/01 23:50, , 8F
09/01 23:50, 8F
→
09/01 23:50, , 9F
09/01 23:50, 9F
推
09/02 01:49, , 10F
09/02 01:49, 10F
推
09/02 02:00, , 11F
09/02 02:00, 11F
→
09/02 02:00, , 12F
09/02 02:00, 12F
→
09/02 02:02, , 13F
09/02 02:02, 13F
推
09/02 02:14, , 14F
09/02 02:14, 14F
→
09/02 13:10, , 15F
09/02 13:10, 15F
→
09/02 21:55, , 16F
09/02 21:55, 16F
→
09/02 21:55, , 17F
09/02 21:55, 17F
推
09/02 21:58, , 18F
09/02 21:58, 18F
→
09/02 21:58, , 19F
09/02 21:58, 19F