Javascript 回调函数的问题

Javascript 回调函数的问题,javascript,api,Javascript,Api,我有一个非常简单的问题,但我一直在思考如何处理这个问题。我一直在使用这个API,它需要一个回调函数来捕获值,并且在将函数的输出返回到我在项目中使用的其他函数时遇到了问题 例如: function a() { var callback = function(e) { var id = e.data.responseData.Id; }; Api.getId(callback); } 如果我尝试调用变量id,它将给我未定义的值,因此我假设id值不是全局传递的 另一方面,如果我像这样运行

我有一个非常简单的问题,但我一直在思考如何处理这个问题。我一直在使用这个API,它需要一个回调函数来捕获值,并且在将函数的输出返回到我在项目中使用的其他函数时遇到了问题

例如:

function a() {
var callback = function(e) {
  var id = e.data.responseData.Id;
};
Api.getId(callback);    
}
如果我尝试调用变量id,它将给我未定义的值,因此我假设id值不是全局传递的

另一方面,如果我像这样运行:

function a() {
    var callback = function(e) {
      var id = e.data.responseData.Id;
      console.log(id);
    };
    Api.getId(callback);    
    }
它将在控制台上正确返回id的值

你知道我遗漏了什么吗

再次感谢


Rafa

您需要在函数中返回变量“id”:

function a() {
var callback = function(e) {
  var id = e.data.responseData.Id;
  return id;
};
Api.getId(callback);    
}

你的问题不够清楚。在您给出的整个代码示例中没有return语句。哪个函数应该返回一些东西?假设返回id值。我尝试添加“返回id”,但也没有成功。本质上,我希望在该范围之外的其他函数上使用id。不能异步返回值。如果必须在其他函数中使用
id
,请从回调函数中调用这些函数,并将
id
作为参数传递。示例-
var callback=function(){id=getId();foo(id);}
我已经尝试过,但仍然给我空值。它将返回调用回调函数的
id
Api
函数。因此,值
id
在函数a()中不可用;也返回:)