Pregunta

Estoy teniendo problemas para entender cómo hacer que un Dojo Deferred funcione para el siguiente escenario.Básicamente, tengo una función que se supone que recorre varios elementos y procesa cada elemento por separado de manera diferida.Realiza el procesamiento de cada artículo en un método separado que devuelve un diferido cuando se realiza.Quiero poder ejecutar el ciclo para que se apague y procese cada elemento e informe un éxito o un fracaso cuando esté terminado.Esto es lo que obtuve hasta ahora como muestra de prueba:

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

¿Qué estoy haciendo mal?Espero que los números de salida estén en secuencia, pero no lo están.

También quiero poder detectar si hay un error al procesar uno de los elementos y, de ser así, no procesar el resto.

Gracias

¿Fue útil?

Solución

  1. He resuelto que el número de salida debe estar en secuencia. http://jsfiddle.net/granjoy/mgv6Y/17/ Hay un par de problemas en su código

    • La función de bucle debe usar el cierre para mantener la variable.
    • Debería utilizar la validación devuelta diferida ahora el proceso diferido
  2. Dado que la función process () finalizará inmediatamente, el registro "terminó de procesar todo".será la primera salida.

Editar:

Aprendí de la pregunta.Gracias, el autor da otra buena solución. http://jsfiddle.net/Ayyoudy/mgv6Y/14

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top