Je récemment this question et compris la solution directe (cet être, j'ai pu annuler une promesse/demande lorsque la route a changé). Cependant, je rencontre un autre problème connexe qui, je pense, appartient à une question distincte, alors voici:AngularJS avorté promesses retarder encore d'autres promesses
Je suis en mesure d'annuler ma promesse lorsque l'itinéraire change très bien (comme vous pouvez le voir à la question I lié). Cependant, pour une raison étrange, toutes les autres demandes sur l'autre route sont retardées lors de la résolution. Voir la capture d'écran de mes outils de développement ci-dessous.
Voici le scénario: Je charge l'itinéraire A, qui appelle /api/categories
et vous pouvez voir qu'il prend 30ms ce qui est normal. Ensuite, je navigue vers la route B, puis avant le chargement, je retourne à la route A. Lorsque je reviens, l'appel à /api/categorySites/1
est annulé, et vous pouvez voir quand cela se produit lorsque la barre grise se termine. Ceci est fait en avortant la promesse. Toutefois, de nouveau sur la route A, l'appel à /api/categories
ne se résout pas jusqu'à ce que ce point gris réapparaisse sur la demande qui a été annulée. Ce deuxième appel à /api/categories
ne devrait pas prendre 2,23s, il devrait être plus proche de 30ms.
Qu'est-ce qui se passe ici? Je pense que la deuxième demande de Route A serait aussi rapide qu'avant. Je dois que ça marche plus vite. Mon code est au this question. Faites-moi savoir si vous pensez que je devrais l'inclure à nouveau ici. Il m'est difficile d'imaginer que ce n'est pas un problème commun aussi ...
Hmmm ... vous avez jamais comprendre cela? Je cours dans le même. – Brian
Je ne pouvais pas trouver un moyen. Vous penseriez que c'était un problème plus commun. Ce que j'ai fait à la place a été d'améliorer ma vitesse de traitement back-end en utilisant la mise en cache afin que le script ne soit pas si long, il était moins visible pour l'utilisateur frontal. Bien sûr, ce n'est pas idéal et n'a pas vraiment résolu le problème. Si vous trouvez une réponse, s'il vous plaît faites le moi savoir! – Joao
Lorsque vous essayez de faire une demande de changement de route # 6 n'annule pas la demande mais annule la promesse. Après avoir changé de route, vous faites la demande # 7 qui appelle le serveur et je suppose qu'il ne peut servir qu'une seule requête simultanément, donc vous voyez cet espace. Qu'y a-t-il dans le backend? – kuzzmi