Suite

Comment calcule-t-on le défaut angulaire ?


Si je devais dessiner un carré de 1 km sur la terre, quels seraient les angles des coins ? De toute évidence, ils seraient un peu supérieurs à 90 degrés, mais comment calculerais-je exactement l'angle ?


Si nous supposons que la Terre est une sphère, vous pouvez faire l'approximation suivante en considérant que :

1) La somme des angles d'un triangle sur une sphère est de 180°(1 + 4f), où f est la fraction de la surface de la sphère qui est délimitée par le triangle (cfr Wikipedia)

2) un carré de 1 km2 à la surface de la Terre peut être composé de 2 triangles de 0,5 km2 (notez qu'un carré de 1 sur 1 km est en fait un peu plus grand que 1km2. Ceci doit être pris en compte si vos carrés sont grands. )

3) les quatre angles du carré sont égaux

4) la superficie de la Terre est d'environ 510 072 000 km2

donc chaque angle dans le carré est d'environ 2*180*(1+4*0,5/510 072 000)/4 = 90,000000353 degré

EDIT : Comme l'a noté Whuber, je parle ici de carrés (et de triangles) en géométrie sphérique :

En géométrie sphérique, un carré est un polygone dont les bords sont de grands arcs de cercle d'égale distance, qui se rencontrent à des angles égaux. Contrairement au carré de la géométrie plane, les angles d'un tel carré sont plus grands qu'un angle droit. Les carrés sphériques plus grands ont des angles plus grands.


Blogues

Parmi les divers bibliothèques de développement front-end, Réagir est important et est fréquemment utilisé par les développeurs pour créer des produits transparents et de qualité. Qu'il s'agisse de permettre une programmation claire ou d'être soutenu par une communauté solide, cette bibliothèque JavaScript open source permet d'offrir des performances rapides. Cependant, ces avantages du logiciel ou des applications ne sont pas seulement le résultat d'une programmation meilleure et claire. Le test fait également partie intégrante de la validation de la qualité du produit ainsi que de sa rapidité. Actuellement, de nombreux frameworks sont utilisés pour tester les composants React, tels que Jest, Enzyme et React-Testing-Library. Bien que les deux premiers soient bien connus parmi les testeurs, Bibliothèque de tests React gagne régulièrement du terrain, en raison des divers avantages qu'il offre à l'équipe de test, et c'est cette méthode de tester les composants React dont nous allons discuter en détail aujourd'hui, pour mieux comprendre sa signification.’


1 réponse 1

Le problème réside dans la façon dont vous avez structuré la fonction _search() et le délai (2000) que vous avez mis en place dans le pipeline observable.

Dans la fonction _search, le retour de () est en dehors de l'abonnement à l'API get. Ce qui signifie que le le retour tire en premier, et ensuite le code à l'intérieur de l'abonnement API get est exécuté. allMemberLists est initialisé à [ ] donc le retour se déclenche en premier avec [ ]. Mais, vous voyez votre ordre attendu de console.logs en raison de la chronologie suivante.

  1. return est déclenché dans _search() avec [ ]. Le code à l'intérieur de l'API obtient un abonnement même pas encore déclenché.
  2. switchmap du pipeline attrape le résultat de ([ ]). Mais delay(2000) empêche le code de l'abonnement, c'est-à-dire this._userInfoLists$.next([ ]) de s'exécuter pour le moment.
  3. Le code à l'intérieur de l'API get subscription est maintenant déclenché et vous obtenez le ==From service== console.log avec les données.
  4. 2000 millisecondes se sont déjà écoulées. Et maintenant, this._userInfoLists$.next([ ]) est déclenché.
  5. Enfin, le component2 console.log est vu. Mais avec le [ ].

La solution est d'ÉVITER de mettre des minuteries comme celle-ci pour les appels d'API. Et évitez de vous abonner à l'API get dans _search. Utilisez plutôt les opérateurs pipe et map dans votre _search(). Vous pouvez lire comment map() fonctionne dans les documents officiels de rxJS.