看板 Ajax 關於我們 聯絡資訊
var http = rest.testing(object); var temp = '***'; http.then( function (response) { console.log(response); //這裡面要怎樣使用promise外面的變數, 如temp, object呢 } ); 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.173.173 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1431967443.A.FE9.html
s25g5d4: 直接用不就好了? 05/19 00:56
tnsshnews: 直接用會顯示undefined, promise內與外是兩個不同時空 05/19 01:14
mmis1000: 你應該去google一下closure,正常能直接用 05/19 01:15
mmis1000: 不能用這種事不會發生在js 05/19 01:15
tnsshnews: node.js有特殊用法? 05/19 01:17
mmis1000: 除非你的用的framework幹了奇怪的事,導致scope搞丟 05/19 01:18
mmis1000: 這不是nodejs的feature,這是js本身的設計 05/19 01:18
mmis1000: 就算是browser裡的一樣能這樣用 05/19 01:19
mmis1000: 只要你在function的內部不要用var把它宣告成local就好 05/19 01:20
mmis1000: 他就會自動去掃外層scope的變數來用 05/19 01:21
tnsshnews: 補充 外層還有一個for loop 05/19 01:22
LPH66: 再不然應該可以用類似 #1J-pvObM 裡那樣 05/19 01:31
mmis1000: js裡唯一創造local變數的方式是在function裡放var,其他 05/19 01:38
mmis1000: 無論是for裡放var也好,while也好,都不會產生新變數 05/19 01:39
mmis1000: 只有function ()後的那一對括弧能產生新scope 05/19 01:40
mmis1000: 然後無論你在function裡的哪個位置放var,意義都一樣, 05/19 01:41
mmis1000: local變數宣告會被自動移到function最開頭 05/19 01:41
mmis1000: 放在for的三個statement也好,放在if裡也好,意義都一樣 05/19 01:42
mrbigmouth: 直接用就好了+1 你到底怎麼辦到變undefined的? 05/19 08:50
y2468101216: 剛剛測試過了 直接用就好了 05/19 10:27
s25g5d4: 認真回 這叫 static(lexical) scope 05/19 10:35
s25g5d4: 所以 js 找變數並不是從 runtime stack 找,而是從原始碼 05/19 10:37
s25g5d4: 開始往上找 05/19 10:37