Javascript 为什么将.success()与getJSON一起使用?

Javascript 为什么将.success()与getJSON一起使用?,javascript,jquery,Javascript,Jquery,对于jQuery函数,使用.success()的原因是什么?初始功能将在成功后执行,对吗?那么,当包含.success()时,您不只是执行了两次吗 在这种情况下,您不需要success函数,您已经定义了一个在成功时要执行的函数。在这种情况下,您不需要success函数,您已经定义了一个在成功时要执行的函数。如果孤立地看它,并且只是一个愉快的场景,是的:它们做同样的事情。无论请求的结果如何,都会调用回调函数作为$.getJSON的最终参数 .success()这样做的灵感来自于承诺。您可以在此处阅

对于jQuery函数,使用.success()的原因是什么?初始功能将在成功后执行,对吗?那么,当包含.success()时,您不只是执行了两次吗


在这种情况下,您不需要success函数,您已经定义了一个在成功时要执行的函数。

在这种情况下,您不需要success函数,您已经定义了一个在成功时要执行的函数。

如果孤立地看它,并且只是一个愉快的场景,是的:它们做同样的事情。无论请求的结果如何,都会调用回调函数作为
$.getJSON
的最终参数

.success()
这样做的灵感来自于承诺。您可以在此处阅读更多关于它们的信息:

承诺为组合许多异步操作以及处理不成功的场景设置了更好的接口


你应该使用
.then()
而不是
.success()

如果孤立地看待它,并且只是一个快乐的场景,是的:它们做同样的事情。无论请求的结果如何,都会调用回调函数作为
$.getJSON
的最终参数

.success()
这样做的灵感来自于承诺。您可以在此处阅读更多关于它们的信息:

承诺为组合许多异步操作以及处理不成功的场景设置了更好的接口


您应该使用
.then()
而不是
.success()

您可以看到您的请求何时成功。您可以在控制台中看到消息以及诸如此类的内容…我不知道您可以看到您的请求何时成功。您可以在控制台中看到消息以及诸如此类的内容…我不知道它们被设计为在每种情况下执行一个函数。成功案例、错误案例和始终执行的常规函数

但作为和,
.success()
已被弃用。见:

不推荐使用注意事项:从jQuery 1.8开始,jqXHR.success()、jqXHR.error()和jqXHR.complete()回调都不推荐使用。要准备代码以便最终删除,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()

使用这种方法,您有一个函数在成功时执行,另一个函数在失败时执行,最后一个函数在任何情况下执行:

// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax( "example.php" )
    .done(function() {
        alert( "success" );
    })
    .fail(function() {
        alert( "error" );
    })
    .always(function() {
        alert( "complete" );
    });

// Perform other work here ...
// Set another completion function for the request above
jqxhr.always(function() {
alert( "second complete" );
});

它们被设计为在每种情况下执行一个函数。成功案例、错误案例和始终执行的常规函数

但作为和,
.success()
已被弃用。见:

不推荐使用注意事项:从jQuery 1.8开始,jqXHR.success()、jqXHR.error()和jqXHR.complete()回调都不推荐使用。要准备代码以便最终删除,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()

使用这种方法,您有一个函数在成功时执行,另一个函数在失败时执行,最后一个函数在任何情况下执行:

// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax( "example.php" )
    .done(function() {
        alert( "success" );
    })
    .fail(function() {
        alert( "error" );
    })
    .always(function() {
        alert( "complete" );
    });

// Perform other work here ...
// Set another completion function for the request above
jqxhr.always(function() {
alert( "second complete" );
});

仅供参考,
success()?这可能是在错误/误解中使用的。仅供参考,
success()
方法不受欢迎。我想我没有看到它被使用过,你在什么地方看到过吗?可能是在错误/误解中使用了它。getJSON API引用()也指向.done()、.fail()、.always(),但对于JSONP来说。我没有使用JSONP。但上述方法仍然有效。如果我在getJSON()中使用它们,会有问题吗?顺便说一句,它们没有提到.then().getJSON返回一个延迟的,并且它支持.then():,但是.done()和.fail()也非常适合!getJSON API引用()也指向.done(),.fail(),.always(),但对于JSONP。我没有使用JSONP。但上述方法仍然有效。如果我在getJSON()中使用它们,会有问题吗?顺便说一句,它们没有提到.then().getJSON返回一个延迟的,并且它支持.then():,但是.done()和.fail()也非常适合!