Вы в основном правы.
«отложенные объекты» можно использовать для обработки асинхронных событий - вы инициируете действие, а затем регистрируете обратный вызов, который будет вызван, когда действие имеетзавершено.Это включает в себя AJAX, хотя есть и много других применений.
очереди jQuery действительно в основном используются для поддержки очереди (анимационных) функций, вызываемых последовательно, и .queue()
специально используется для добавления вашей собственной функции в очередь анимации.
Чтобы еще больше усложнить ситуацию, анимации могут также вызывать асинхронные обратные вызовы, когда они завершаются.«Традиционный» способ сделать это состоял в предоставлении обратного вызова для функции анимации, но с современным jQuery, если вы вызываете .promise()
для объекта jQuery, вы получаете отложенный объект, который будет разрешен при любой существующей анимации на каждом элементе в этомОбъект завершен:
$('#id1,#id2').slideUp().promise().done(function() {
// this will be called when the animations are complete
});