Por que o construtor Promise precisa de um executor?
Ao usarPromessas, por que não é possível disparar pararesolve
ereject
ser definido em outro lugar na base de código?
Não entendo porqueresolve
ereject
lógica deve ser localizada onde a promessa é declarada. Isso é uma supervisão ou existe um benefício em ordenar oexecutor
parâmetro?
Eu acredito que a função executora deve ser opcional e que sua existência deve determinar se a promessa encapsula a resolução ou não. A promessa seria muito mais extensível sem esses mandatos, já que você não precisa iniciar o assíncrono imediatamente. A promessa também deve ser reajustável. É um interruptor de 1 disparo, 1 ou 0,resolve()
oureject()
. Há uma infinidade de resultados paralelos e seqüenciais que podem ser anexados:promise.then(parallel1)
epromise.then(parallel2)
e tambémpromise.then(seq1).then(seq2)
mas jogadores com privilégios de referência não podem resolver / rejeitar no switch
Você pode construir uma árvore de resultados posteriormente, mas não pode alterá-los nem alterar as raízes (gatilhos de entrada)
Honestamente, a árvore dos resultados seqüenciais também deve ser editável. Digamos que você queira dividir uma etapa e fazer outra coisa, depois de declarar muitas cadeias de promessas. Não faz sentido reconstruir a promessa e todas as funções sequenciais, especialmente porque você também não pode rejeitar ou destruir a promessa ...