为什么我的代码未记录回调函数的响应?

时间:2019-06-25 22:15:42

标签: javascript node.js

我正在围绕SVN库编写包装函数,以更好地理解Javascript。这是我的代码:

export const getLatestTag = (svnURL) => {
  svnUltimate.util.getLatestTag(svnURL, (err, latestTag) => {
    if (!err) {
      return latestTag;
    }

    return err;
  });
};

我在使用Mocha进行测试时遇到了麻烦,因此我尝试通过一些简单的控制台日志手动测试它,如下所示:

getLatestTag('URL:8080/svnroot/PERF_POC/Test_Project/trunk', (err, data) => {
  if (!err) {
    console.log('success');
    console.log(data);
  } else {
    console.log('error');
    console.error(err);
  }
});

执行它时,我没有收到任何错误-我知道代码在工作,因为如果将console.log放在服务中,它将正确地返回数据。

但是,直接通过我的测试文件测试功能时,我没有得到任何返回的信息。 发生什么情况我可能无法正确理解?

谢谢!

编辑:通过更新getLatestTag服务使其工作:

export const getLatestTag = svnURL => new Promise((resolve, reject) => {
  svnUltimate.util.getLatestTag(svnURL, (err, data) => {
    if (err != null) {
      reject(err);
    } else {
      resolve(data);
    }
  });
});

0 个答案:

没有答案