Pergunta

Estou tendo problemas para entender como fazer um Dojo Deferred funcionar para o seguinte cenário.Basicamente, tenho uma função que deve percorrer vários itens e processar cada item separadamente de maneira diferida.Ele faz o processamento de cada item em um método separado que retorna um Deferido quando é feito.Quero ser capaz de executar o loop para desligar e processar cada item e relatar um sucesso ou falha quando for concluído.Aqui está o que recebi até agora como uma amostra de teste:

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

O que estou fazendo de errado?Espero que os números de saída estejam em sequência, mas não estão.

Também quero ser capaz de detectar se há um erro no processamento de um dos itens e, se houver, não processar o resto.

Obrigado

Foi útil?

Solução

  1. Resolvi que o número de saída deve estar em sequência. http://jsfiddle.net/granjoy/mgv6Y/17/ Existem alguns problemas em seu código

    • a função de loop deve usar fechamento para manter a variável.
    • Você deve usar o validate devolvido Deferred agora o processo Deferred
  2. Dado que a função process () será finalizada imediatamente, então o log "concluído o processamento de tudo!"será a primeira saída.

Editar:

Aprendi com a pergunta.Obrigado, o autor dá outra boa solução. http://jsfiddle.net/Ayyoudy/mgv6Y/14

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top