J'ai trouvé cela en travaillant sur un calendrier qui doit désactiver certaines plages de dates. Il est parfois coupé par un.
Reproduire:
moment().isBefore(moment())
false
, mais affiche parfois true
. Cela ne semble pas se produire avec la méthode isAfter
. Ci-dessous, une capture d'écran.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.