jQuery AJAX:为什么.error()方法被弃用而使用.fail()方法?



如果你阅读这里。ajax()的链接,他们说:

jqXHR。fail(function(jqXHR, textStatus, errorThrown) {});一个错误回调选项的另一个构造,.fail()方法替换已弃用的.error()方法。参考deferred.fail()实现细节。

为什么.error()方法被弃用而采用.fail()方法

这两个选项是等价的。

但是,promise风格的接口(.fail()和.done())允许您将创建请求的代码与处理响应的代码分开。

您可以编写一个发送AJAX请求并返回jqXHR对象的函数,然后在其他地方调用该函数并添加处理程序。

当与.pipe()函数结合使用时,promise风格的接口还可以在进行多个AJAX调用时帮助减少嵌套:

$.ajax(...)
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    });

这实际上是在谈论延迟的方法。它是说延迟对象过去有一个错误方法,但已弃用,因为在该上下文中fail更有意义。

ajax()调用返回的对象实现了一个promise接口,所以你可以调用fail()、done()和then()。

你也可以使用'error'选项在ajax调用之前定义一个失败回调函数。注意这不是一个函数,而是一个选项。

最新更新