Je travaillais récemment sur un petit projet En raison du manque d'ingénieurs front-end dans l'équipe, on m'a temporairement demandé d'écrire Angular sans aucune expérience.
J'ai lu quelques livres de base et j'ai senti que le mécanisme de transmission asynchrone de l'API rest en angulaire est très magique.
Dans le même temps, je réfléchis également, si les paramètres de votre prochaine requête http nécessitent le résultat de la requête précédente, comment garantir que les paramètres peuvent être obtenus et non nuls.
J'ai essayé de mettre la deuxième ou la troisième requête http après .success, et cela a effectivement réussi, mais j'avais l'impression que le code était très redondant et qu'il y avait trop de niveaux d'imbrication.
Avez-vous des suggestions?
L'affiche originale suggérait de jeter un œil à la chaîne de promesses imbriquée et à la chaîne de promesses
Étant donné que $http d'Angular a deux méthodes de raccourci intégrées, succès et erreur, la méthode standard then est facile à ignorer.
L'affiche originale doit alors utiliser l'imbrication de la promesse
Par exemple
Ou utilisez la chaîne de promesses
Différentes exigences peuvent utiliser différents formulaires de promesse
Par exemple, vous pouvez également utiliser la méthode Q.all pour compléter plusieurs promesses avant de traiter les événements
Opérer avec succès peut garantir que toutes les données sont obtenues. C'est un peu comme l'appel en chaîne de la promesse.
Un morceau de code qui existe en tant que baseService dans un projet personnel :
Ce qui suit est le postService spécifique :
La dernière chose dans blogConroller ressemble probablement à ceci :
Si le backend assure un bon style d'interface REST, il est recommandé d'utiliser le plug-in officiel $resource :
Vous pouvez l'utiliser maintenant :