Dva: O efeito suporta assíncrono / espera?

Criado em 8 out. 2018  ·  9Comentários  ·  Fonte: dvajs/dva

Como o título

Comentários muito úteis

Dizendo que Generator poderoso, só quero reclamar que goto mais poderoso, você pode pular para onde quiser

Todos 9 comentários

Não, dva é baseado em redux-saga, redux-saga usa Generator para tornar o efeito testável, você pode ler esta resposta para detalhes

https://github.com/redux-saga/redux-saga/issues/987#issuecomment -301039792

Acabei de ler o problema que você postou para mim. Para deixar claro, o autor da saga redux é preguiçoso demais para mudá-lo haha

Eu também tinha uma pergunta. Verifiquei o código-fonte do dva. O 函数 no objeto de efeitos é fornecido para execução externa e precisa ser definido de acordo com suas especificações. O externo precisa ser definido como Generator função, e nós usamos Não se preocupe com a execução externa, ele executará next() , então o código ainda está muito fresco.

Acabei de ler o problema que você postou para mim. Para deixar claro, o autor da saga redux é preguiçoso demais para mudá-lo haha

Engraçado, assíncrono, esperar o controle assincronia é muito menos poderoso do que a função do gerador

Não, dva é baseado em redux-saga, redux-saga usa Generator para tornar o efeito testável, você pode ler esta resposta para detalhes

redux-saga / redux-saga # 987 (comentário)

Este problema não diz por que o gerador pode ser testado. @xiaosongxiaosong

Com async, o await não pode ser testado? (A questão já dura muito tempo. É porque ninguém a discutiu)

@ 951565664

assíncrono, espera o controle assincronia é muito menos poderoso do que a função do gerador

BengBu-YueZhang já falou sobre a essência desse problema. Meu entendimento sobre geradores não é muito completo. Deixe-me falar sobre meu entendimento superficial:

  1. a função do gerador é chamada, retorna um objeto visitante para o chamador, o gerador de objeto visitante, além de permitir a implementação da recuperação, também especificaremos a expressão de rendimento que retorna o valor no momento da recuperação
  2. A função assíncrona é o açúcar sintático da função Gerador. Ela tem um executor integrado. Após a chamada, ele executará automaticamente e produzirá a estrutura final. O chamador não pode controlar a pausa e a retomada da função assíncrona, nem pode injetar valores na função assíncrona.

Existem dois parágrafos no capítulo do gerador ECMAScript 6 Getting Started, que são mais úteis para entender este problema.

A própria expressão de rendimento não retorna um valor ou sempre retorna indefinido. O próximo método pode receber um parâmetro, que será usado como o valor de retorno da expressão de rendimento anterior.

Função do gerador do estado de pausa para retomar a execução, seu estado de contexto (contexto) é o mesmo. Por meio dos parâmetros do próximo método, há uma maneira de continuar injetando valores no corpo da função depois que a função Gerador começar a ser executada. Em outras palavras, você pode injetar diferentes valores de fora para dentro em diferentes estágios da função do gerador para ajustar o comportamento da função.

Dizendo que Generator poderoso, só quero reclamar que goto mais poderoso, você pode pular para onde quiser

Acabei de ler o problema que você postou para mim. Para deixar claro, o autor da saga redux é preguiçoso demais para mudá-lo haha

Engraçado, assíncrono, esperar o controle assincronia é muito menos poderoso do que a função do gerador

Parece dizer que a linguagem JS é muito menos poderosa do que a linguagem C

Esta página foi útil?
0 / 5 - 0 avaliações