2013-04-26 10 views
10

Recentemente ho letto della funzione promise([type] [,target]) che restituisce un oggetto Promise.Quali altri tipi esistono per l'oggetto promessa jQuery?

Le documentation afferma che il default è typefx:

Per impostazione predefinita, type è "fx", che significa la promessa restituita viene risolto quando tutte le animazioni degli elementi selezionati hanno completato.

Per qualche motivo ho difficoltà a trovare altri tipi disponibili. Suppongo che altri tipi potrebbero essere ad es. ajax che viene risolto quando il contenuto viene caricato in una raccolta utilizzando load() o metodi simili (nota che so come gestire le promesse load(), sto solo dando un esempio).

C'è una lista da qualche parte che specifica tutti i tipi disponibili? Stavo pensando a looking at the source code per scoprirlo, tuttavia speravo che ci fosse una lista da qualche parte, a meno che l'fx sia l'unico tipo ragionevole che si possa usare con questa funzione.

risposta

9

La documentazione dice sull'argomento type:

Il tipo di coda che deve essere osservato.

Per impostazione predefinita, tutte le funzioni di animazione vengono aggiunte alla coda fx. Ma con .queue, è possibile "allegare" le funzioni agli elementi selezionati che vengono eseguiti per una coda di propria scelta (che è possibile definire ).

Quindi, la promessa verrà risolta una volta chiamate tutte le funzioni nella coda specificata. Anche se non l'ho ancora visto in pratica.

Esempio:

$('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

Questo significa che non ci sono altri tipi di coda "built-in"? Immagino che solo le animazioni vengano accodate in quel modo davvero. – MMM

+1

Sì, AFAIK 'fx' è l'unica coda incorporata. –

+0

Fantastico, è utile. Aspetterò un po 'prima di accettare la tua risposta, forse altre persone hanno incontrato altri esempi. Grazie! – MMM

Problemi correlati