Nodejs全局变量没有按预期工作



我正在研究我的第一个节点模块,我正在努力在我的函数中的变量一点。第一个控制台日志给我我的数据,但第二个控制台日志给我未定义。

module.exports = {
  getClient: function() {
    var options_auth={user: username, password: password};
    return new Client(options_auth);
  },
  getTestCaseById: function(client, args, testCaseId) {
    var restResponse;
    url = baseurl + "testcase/" +testCaseId;
    client.get(baseurl + "testcase/" +testCaseId, args, function(data, response) {
        restResponse = data;
        console.log(data);
    });
    console.log(restResponse);
  }
};

关于我对restResponse变量做错了什么的想法

这是因为.get调用是异步的。运行client.get函数后的console.log,而该数据调用仍在进行中。调用内部的函数在调用完成后运行——称为回调函数。

在回调函数中使用返回的数据,或者将返回的数据传递给另一个函数。

返回数据:

getTestCaseById: function(client, args, testCaseId, callback) {
    var restResponse;
    url = baseurl + "testcase/" +testCaseId;
    client.get(baseurl + "testcase/" +testCaseId, args, function(data, response) {
        restResponse = data;
        callback(data)
    });
}

然后传入一个回调:

getTestCaseById(client, args, testCaseId, function(response) {
    console.log(response); //your returned data
});

最新更新