Domanda

Non riesco a capire come far funzionare un Dojo Deferred per il seguente scenario.Fondamentalmente ho una funzione che dovrebbe scorrere un numero di elementi ed elaborare ogni elemento separatamente in modo differito.Esegue l'elaborazione di ogni elemento in un metodo separato che restituisce un differito quando viene eseguito.Voglio essere in grado di eseguire il ciclo per spegnersi ed elaborare ogni elemento e segnalare un successo o un fallimento quando è finito.Ecco cosa ho ottenuto finora come campione di prova:

http://jsfiddle.net/Ayyoudy/mgv6Y/12/

Cosa sto facendo di sbagliato?Mi aspetto che i numeri di output siano in sequenza ma non lo sono.

Voglio anche essere in grado di rilevare se si è verificato un errore durante l'elaborazione di uno degli elementi e, in tal caso, non elaborare il resto.

Grazie

È stato utile?

Soluzione

  1. Ho deciso che il numero di output dovrebbe essere in sequenza. http://jsfiddle.net/granjoy/mgv6Y/17/ Ci sono un paio di problemi nel tuo codice

    • la funzione loopping dovrebbe utilizzare la chiusura per contenere la variabile.
    • È necessario utilizzare la convalida restituita Deferred ora il processo Deferred
  2. Dato che la funzione process () finirà immediatamente, quindi il log "ha terminato l'elaborazione di tutto!"sarà il primo output.

Modifica:

Ho imparato dalla domanda.Grazie, l'autore dà un'altra buona soluzione. http://jsfiddle.net/Ayyoudy/mgv6Y/14

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top