代码无法在 Node.JS 中输出错误或异常

Code fails to output errors or exceptions in Node.JS

我正在使用一个名为 GitNode 的 Node.JS 库。我认为这不重要,但基本上它是 Node.JS.

中 git 命令的 API

我有一段代码,其目的是在现有存储库中创建一个新分支。在 运行 运行代码后,我知道它没有创建存储库,而且我也知道它无法正常工作。

这是我的全部代码:

var Git = require("nodegit");

var getMostRecentCommit = function(repository) {
  return repository.getBranchCommit("master");
};

var makeBranch = function(respository) {
  console.log("in here1")
  repository.createBranch("tester", getMostRecentCommit(repository)).then(
      function(reference) {
           console.log("good")},               // if it works
      function(reasonForFailure) {
           console.log("bad_error")})          // createBranch has error case
      .catch(function(reasonForFailure) {
           console.log("bad_catch")});         // if the error function fails, I also have a catch statement
};


Git.Repository.open("../test_repo")
  .then(makeBranch);

我放置了很多 catch 语句,希望能找到我的错误。但我似乎无法输出任何东西。短语 "Bad_error" 或 "Bad_catch" 均未输出。

我知道代码已损坏,createBranch 无法正常工作。在调用 repository.createBranch 之后,我测试了一些本应 运行 的代码,但它从来没有 运行,因为调用 createBranch 之前的任何代码都将 运行。这表明 CreateBranch 是问题所在。

那么为什么我的错误没有被发现?

编辑

我已修复代码并输出错误(请参阅下面的答案),但我仍然想知道为什么我的其他 exceptions/error 语句无法工作。

所以,由于

,我解决了部分问题

我只需要在我的 Repository.open() 函数中添加一个 catch 语句。

var makeBranch = function(respository) {
  console.log("in here1")
  repository.createBranch("tester", getMostRecentCommit(repository)).then(
      function(reference) {
           console.log("good")},               
      function(reasonForFailure) {
           console.log("bad_error")})          
      .catch(function(reasonForFailure) {
           console.log("bad_catch")});        
};


Git.Repository.open("../test_repo")
  .then(makeBranch).catch(
  function(reasonForFailure) {console.log("bad")}); // This Works

如果有人好奇,原来我传递的是变量 respository 而不是 repository :p

这将输出bad。所以这很好。我仍然不太明白为什么会这样,但我的其他 catch 语句却没有。我仍在寻找好的答案或解释。