2013-04-26 4 views
10

Я недавно читал о функции promise([type] [,target]), которая возвращает объект Promise.Какие еще типы существуют для объекта обещания jQuery?

В documentation говорится, что по умолчанию type является fx:

По умолчанию, type является «fx», что означает, возвращенный Promise будет решена, когда все анимации выбранных элементов завершена.

По какой-то причине мне трудно найти другие доступные типы. Я предполагаю, что другие типы могут быть, например, ajax, который разрешается при загрузке содержимого в коллекцию с использованием load() или аналогичных методов (). Заметьте, что я знаю, как обращаться с load() обещаниями, я просто приводил пример).

Есть ли список, где указаны все доступные типы? Я думал о looking at the source code, чтобы узнать это, однако я надеялся, что есть список где-нибудь, если только fx - единственный разумный тип, который можно использовать с этой функцией.

ответ

9

В документации говорится о type аргумента:

Тип очереди, которая должна соблюдаться.

По умолчанию все функции анимации добавляются в очередь fx. Но с .queue вы можете «присоединить» функции к выбранным элементам, которые запускаются для очереди по вашему выбору (которая может определить , которую вы можете определить).

Таким образом, обещание будет устранено после вызова всех функций в указанной очереди. Хотя я еще не видел этого на практике.

Пример:

$('div').queue('foo', [function(next) { 
    setTimeout(next, 2000); // some delay 
}, function(next) { 
    console.log('Last function in queue'); 
    next(); 
}]).dequeue('foo'); 

$('div').promise('foo').done(function() { 
    console.log('all done'); 
}); 

DEMO

+0

Означает ли это, что не существует каких-либо других типов очередей "встроенные"? Я думаю, что только анимации в такой ситуации оказались в очереди. – MMM

+1

Да, AFAIK 'fx' - единственная встроенная очередь. –

+0

Удивительно, это полезно. Я подожду немного, прежде чем принять ваш ответ, хотя, возможно, другие люди столкнулись с другими примерами. Благодаря! – MMM

Смежные вопросы