É uma tomada de decisão deficiente que usa promessas para entradas de GUI?

5

Então, como você sabe o contexto: DOM com JavaScript, embora eu ache que é principalmente um problema de linguagem agnóstica (eu sei que coloco tags agnósticas e JavaScript, mas é apenas para deixar você ver algo que eu posso não ser capaz de ver por mim mesmo).

Eu recentemente decidi usar um mecanismo de promessa para resolver interações com o usuário (cliques, entrada de teclado) e fiquei me perguntando se eu estava faltando o ponto de promessas .

Por exemplo, o algoritmo ficaria assim

  • menu principal de lançamento (função que retorna uma promessa)
  • então (recebe uma entrada de parâmetro, define alguns dados externos de acordo com a entrada)
  • então (aguarda por uma série de cliques)
  • então (navegue para outro menu, retornando também uma promessa)
  • catch (algo foi rejeitado - > em seguida, inicie tudo novamente a partir do início)

É um ciclo, o que significa que se falhar em algum lugar, tudo começa novamente. Eu estou querendo saber se fiz um idiota total de mim mesmo com essa decisão ou se estou realmente fazendo promessas certas, ou quase, mas não completamente.

Você pode me esclarecer, por favor?

    
por axelduch 27.02.2015 / 18:26
fonte

1 resposta

3

Por quanto vale, o artigo que você relacionou estava discutindo pessoas que escrevem bibliotecas promissoras, não pessoas que as usam.

Seu caso de uso parece um pouco maior do que o normal, mas, até onde posso dizer pela sua descrição, é relativamente adequado para promessas. As promessas são projetadas para simplificar o sequenciamento e a composição do código assíncrono. Essa é certamente a sua situação aqui. Você está esperando várias ações assíncronas em sequência, várias das quais podem ter subseqüências.

Apenas certifique-se de que está realmente simplificando seu código. Se você se encontrar em uma situação em que você está tendo muita dificuldade em conseguir uma promessa de trabalhar, use outra coisa para essa parte do código.

    
por 27.02.2015 / 21:10
fonte