[問題] node.js的promise如何使用外面的變數

作者: tnsshnews (tnsshnews)   2015-05-19 00:44:00
var http = rest.testing(object);
var temp = '***';
http.then(
function (response) {
console.log(response);
//這裡面要怎樣使用promise外面的變數, 如temp, object呢
}
);
謝謝大家
作者: s25g5d4 (function(){})()   2015-05-19 00:56:00
直接用不就好了?
作者: tnsshnews (tnsshnews)   2015-05-19 01:14:00
直接用會顯示undefined, promise內與外是兩個不同時空
作者: mmis1000 (秋月戀楓)   2015-05-19 01:15:00
你應該去google一下closure,正常能直接用不能用這種事不會發生在js
作者: tnsshnews (tnsshnews)   2015-05-19 01:17:00
node.js有特殊用法?
作者: mmis1000 (秋月戀楓)   2015-05-19 01:18:00
除非你的用的framework幹了奇怪的事,導致scope搞丟這不是nodejs的feature,這是js本身的設計就算是browser裡的一樣能這樣用只要你在function的內部不要用var把它宣告成local就好他就會自動去掃外層scope的變數來用
作者: tnsshnews (tnsshnews)   2015-05-19 01:22:00
補充 外層還有一個for loop
作者: LPH66 (-6.2598534e+18f)   2015-05-19 01:31:00
再不然應該可以用類似 #1J-pvObM 裡那樣
作者: mmis1000 (秋月戀楓)   2015-05-19 01:38:00
js裡唯一創造local變數的方式是在function裡放var,其他無論是for裡放var也好,while也好,都不會產生新變數只有function ()後的那一對括弧能產生新scope然後無論你在function裡的哪個位置放var,意義都一樣,local變數宣告會被自動移到function最開頭放在for的三個statement也好,放在if裡也好,意義都一樣http://jsbin.com/ripesi/1/edit?html,js,console
作者: mrbigmouth (大嘴先生)   2015-05-19 08:50:00
直接用就好了+1 你到底怎麼辦到變undefined的?
作者: y2468101216 (芸)   2015-05-19 10:27:00
剛剛測試過了 直接用就好了
作者: s25g5d4 (function(){})()   2015-05-19 10:35:00
認真回 這叫 static(lexical) scope所以 js 找變數並不是從 runtime stack 找,而是從原始碼開始往上找

Links booklink

Contact Us: admin [ a t ] ucptt.com