[问题] 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