在Node中从函数内部引用外部函数var

我想知道如何访问以下代码中的特定variables:

文件foo.js

function a(id, callback) { //Do things if (err) { callback(err); } else { callback(null, result); } } function b(x, callback) { //Do things if (err) { callback(err); } else { callback(null, result); } } 

文件question.js

 var id = 1; var x = 2; foo.a(id, function(err, result){ if (err) { //Do stuff } else { foo.b(x, function(err, result){ if (err) { //Do stuff } else { console.log("Function A: " + result); // I want to log result from foo.a console.log("Function B: " + result); } }); } }); 

我怎样才能访问内函数foo.b var函数foo.a结果?

问题是如果有一些方法来引用variables而不改变名称。 就像this.resultsuper.result

问题是如果有一些方法来引用variables而不改变名称。 就像this.resultsuper.result

不,从外部范围(在你的情况下,在callback中的result参数)访问一个标识符的方法没有任何标记,你通过在错误范围上重用标识符名称来影响标识符(在你的情况下, result参数在b的callback)。

相反,只要给参数不同的名称,因为你的bcallbackclosures你acallback收到的result

 var id = 1; var x = 2; foo.a(id, function(err, aresult){ // <=== `aresult` instead of `result` if (err) { //Do stuff } else { foo.b(x, function(err, bresult){ // <=== `bresult` instead of `result` if (err) { //Do stuff } else { console.log("Function A: " + aresult); // <=== Use them console.log("Function B: " + bresult); // <=== } }); } });