独立异步操作到底应该使用什么;延迟对象还是ajax done()
/fail()
就足够了?有什么区别?
我知道deferred.when()
很有用,因为它可以让我们知道多个异步操作何时完成。但是一个异步操作怎么样?done()
/fail()
也让我知道它什么时候完成。
$.ajax()
方法返回一个$.Deferred()
对象。所以你在所有情况下都使用延期。您可以使自己的延迟,但ajax会自动返回相同的值。这只是用jQuery,普通javascript没有这个功能。
$.ajax()
将返回以下promise方法:
fail()
、done()
、always()
和then()
。
Jquery论坛怎么说:
从jQuery 1.5开始,$.ajax()返回的jqXHR对象实现了Promise接口,为它们提供了Promise 的所有属性、方法和行为
关于jQuery $.ajax
的详细参考信息,http://api.jquery.com/jQuery.ajax/
来自文档:
jQuery.Deferred()对回调方式进行了一些增强被管理和调用。特别是,jQuery.Deferred()提供了提供多个回调的灵活方式,并且这些回调可以无论原始回调调度是否已经发生。
和:
理解Deferred的一个模型是将其视为一个感知链的函数包装器。
正如您所说,最大的区别在于deferred.when
在处理多个请求时非常有用。回答您的问题,对于独立操作,done()
和fail()
会做得很好,而且更容易实现,在我看来c: