Dva: L'effet prend-il en charge l'async/l'attente ?

Créé le 8 oct. 2018  ·  9Commentaires  ·  Source: dvajs/dva

Comme titre

Commentaire le plus utile

Dire que Generator puissant, je veux juste me plaindre que goto plus puissant, vous pouvez sauter où vous voulez

Tous les 9 commentaires

Non, dva est basé sur redux-saga, redux-saga utilise Generator pour rendre l'effet testable, vous pouvez lire cette réponse pour plus de détails

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

Je viens de lire le problème que vous m'avez posté. Pour être clair, l'auteur de redux-saga est trop paresseux pour le changer haha

J'avais aussi une question. J'ai vérifié le code source dva. Le 函数 dans l'objet d'effets est fourni pour une exécution externe et doit être défini conformément à ses spécifications. L'externe doit être défini comme le Generator fonction, et nous utilisons Don't care about external execution, il exécutera next() , donc le code est encore très frais.

Je viens de lire le problème que vous m'avez posté. Pour être clair, l'auteur de redux-saga est trop paresseux pour le changer haha

Drôle, asynchrone, l'asynchrone de contrôle d'attente est beaucoup moins puissante que la fonction de générateur

Non, dva est basé sur redux-saga, redux-saga utilise Generator pour rendre l'effet testable, vous pouvez lire cette réponse pour plus de détails

redux-saga/redux-saga#987 (commentaire)

Ce problème ne dit pas pourquoi le générateur est testable. @xiaosongxiaosong

Avec async, wait ne peut pas être testé ? (La question a été longtemps. Est-ce parce que personne n'en a discuté)

@951565664

async, wait control asynchrone est beaucoup moins puissant que la fonction générateur

BengBu-YueZhang a déjà parlé de l'essence de ce problème. Ma compréhension des générateurs n'est pas très approfondie. Permettez-moi de parler de ma compréhension superficielle :

  1. la fonction génératrice est appelée, renvoie un objet visiteur à l'appelant, le générateur d'objet visiteur en plus de permettre la mise en œuvre de la récupération, nous allons également spécifier l'expression de rendement renvoie la valeur au moment de la récupération
  2. La fonction async est le sucre syntaxique de la fonction Generator. Elle a un exécuteur intégré. Après l'appel, elle exécutera et affichera automatiquement la structure finale. L'appelant ne peut pas contrôler la pause et la reprise de la fonction async, pas plus qu'il ne le peut. injecter des valeurs dans la fonction async.

Il y a deux paragraphes dans le chapitre du générateur ECMAScript 6 Getting Started, qui sont plus utiles pour comprendre ce problème.

L'expression yield elle-même ne renvoie pas de valeur ou renvoie toujours undefined. La méthode suivante peut prendre un paramètre, qui sera utilisé comme valeur de retour de l'expression de rendement précédente.

Fonction générateur de l'état de pause à la reprise de l'exécution, son état de contexte (contexte) est inchangé. Grâce aux paramètres de la méthode suivante, il existe un moyen de continuer à injecter des valeurs dans le corps de la fonction une fois que la fonction Generator a commencé à s'exécuter. En d'autres termes, vous pouvez injecter différentes valeurs de l'extérieur vers l'intérieur à différentes étapes de la fonction génératrice pour ajuster le comportement de la fonction.

Dire que Generator puissant, je veux juste me plaindre que goto plus puissant, vous pouvez sauter où vous voulez

Je viens de lire le problème que vous m'avez posté. Pour être clair, l'auteur de redux-saga est trop paresseux pour le changer haha

Drôle, asynchrone, l'asynchrone de contrôle d'attente est beaucoup moins puissante que la fonction de générateur

Il semble dire que le langage JS est beaucoup moins puissant que le langage C

Cette page vous a été utile?
0 / 5 - 0 notes