Moment: la méthode `isBefore` n'est pas déterministe

Créé le 6 avr. 2018  ·  5Commentaires  ·  Source: moment/moment

J'ai trouvé cela en travaillant sur un calendrier qui doit désactiver certaines plages de dates. Il est parfois coupé par un.

Reproduire:

  1. ouvrez les outils de développement chrome, tapez moment().isBefore(moment())
    Exécutez-le encore et encore, il devrait toujours être false , mais affiche parfois true . Cela ne semble pas se produire avec la méthode isAfter . Ci-dessous, une capture d'écran.

image

Bug

Tous les 5 commentaires

Il semble que isBefore se comporte correctement, mais d'une manière ou d'une autre, les deux objets moment () sont parfois créés avec le second ayant la date antérieure. C'est le chèque qui renvoie des résultats disparates:
https://github.com/moment/moment/blob/develop/src/lib/moment/compare.js#L26

Je vois, merci d'avoir regardé et de me répondre!

Je pense que cela dépend de la milliseconde exacte à laquelle les moments sont créés. Le fait que le second soit créé après le premier ressemble à un bogue du navigateur.

Il y a une conversation plus approfondie autour de ce sujet ici: https://github.com/moment/moment/issues/2697

Le fait que le second soit créé après le premier ressemble à un bogue du navigateur.

Ça me va.

Comparez moment().isBefore(moment()) avec:
somethingThrowingAnError().method(somethingWithSideEffects())
Ou même:
somethingReturningNull().method(somethingWithSideEffects())

Vous ne vous attendriez pas ou ne voudriez pas que somethingWithSideEffects() soit appelé lorsqu'une erreur est levée / la méthode ne peut pas être appelée.

Tout ça pour dire: first _doit_ être appelé avant second :
first().method(second())

@ispacowanguitar certaines fois, les moments sont créés dans la même milliseconde, parfois non. Rien à voir ici.

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

Questions connexes

benhathaway picture benhathaway  ·  3Commentaires

slavafomin picture slavafomin  ·  3Commentaires

ghost picture ghost  ·  3Commentaires

M-Zuber picture M-Zuber  ·  3Commentaires

ninigix picture ninigix  ·  3Commentaires