为什么 jQuery .done() 不能识别外部函数

Why isn't the jQuery .done() not recognizing an external function

我有这样的东西:

  //works fine
  $.ajax("info.txt")
    .done(function(data) {
      console.log("works");
    })

我也有这样的:

  //throws an error, stating CheckIt() inside the .done() is not a function
  $.ajax("info.txt")
    .done(function(data) {
      CheckIt(data);
    });

  function CheckIt(da) {
    console.log("it works");
  }

为什么我会收到错误以及如何避免错误以允许我使用其他功能。

您的 ajax 请求可能失败了。如果将 done 替换为 always,它将始终被调用,即使请求失败也是如此。

$.ajax("https://cat-fact.herokuapp.com/facts/random")
  .always(function(data) {
    CheckIt(data);
  });

function CheckIt(da) {
  alert("it works");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>