我知道如何使用jquery ajax这样。换句话说,我理解.fail在失败等情况下会被调用。

var jqxhr = $.ajax( "example.php" )
  .done(function() {
    alert( "success" );
  })
  .fail(function() {
    alert( "error" );
  })
  .always(function() {
    alert( "complete" );
  });


我也理解$.ajax("example.php")返回一个代表DOM一​​部分的对象,并且有匿名函数作为参数传递给完成/失败/总是。到目前为止,一切都很好。我还获得了方法链接(或“级联”):对对象的函数调用如何返回该对象,因此您可以使用链中的下一个方法再次调用该对象。

但是,我试图了解jquery如何“知道”从上面的链中调用哪种方法。这不像完成返回然后失败(调用链中的下一个方法)那样。那么,这种语法是怎么回事?它是如何工作的?

最佳答案

实际上,$.ajax()不会返回表示DOM一部分的对象,而是一个promise

您可以阅读有关承诺here的更多信息。

10-07 19:56
查看更多