Moment: طريقة "isBefore" هي طريقة غير حتمية

تم إنشاؤها على ٦ أبريل ٢٠١٨  ·  5تعليقات  ·  مصدر: moment/moment

لقد وجدت هذا أثناء العمل على تقويم يحتاج إلى تعطيل نطاقات زمنية معينة. هو في بعض الأحيان قبالة من قبل واحد.

لإعادة إنتاج:

  1. افتح أدوات chrome dev-tools ، واكتب moment().isBefore(moment())
    قم بتشغيله مرارًا وتكرارًا ، يجب أن يكون دائمًا false ، لكن في بعض الأحيان يظهر true . لا يبدو أن هذا يحدث مع طريقة isAfter . يوجد أدناه لقطة شاشة.

image

Bug

ال 5 كومينتر

يبدو أنه قبل أن يتصرف بشكل صحيح ولكن بطريقة ما يتم إنشاء كائنين () في بعض الأحيان مع الثاني له التاريخ السابق. هذا هو الشيك الذي يعرض نتائج متباينة:
https://github.com/moment/moment/blob/develop/src/lib/moment/compare.js#L26

أرى ، شكرًا للنظر في الأمر والعودة إلي!

أعتقد أن الأمر يعتمد على جزء من الثانية بالضبط يتم تكوين اللحظات. حقيقة أن الثانية تم إنشاؤها على الإطلاق بعد الأول تبدو وكأنها خطأ في المتصفح.

هناك محادثة أكثر شمولاً حول هذا الموضوع هنا: https://github.com/moment/moment/issues/2697

حقيقة أن الثانية تم إنشاؤها على الإطلاق بعد الأول تبدو وكأنها خطأ في المتصفح.

تبدو جيدة بالنسبة لي.

قارن moment().isBefore(moment()) بـ:
somethingThrowingAnError().method(somethingWithSideEffects())
او حتى:
somethingReturningNull().method(somethingWithSideEffects())

لن تتوقع أو تريد استدعاء somethingWithSideEffects() عند حدوث خطأ / لا يمكن استدعاء الطريقة.

كل ما يجب قوله: first _ يجب أن يتم استدعاؤه قبل second :
first().method(second())

ispacowanguitar في بعض الأوقات يتم إنشاء اللحظات في نفس الميلي ثانية ، وفي بعض الأحيان لا يتم ذلك. لا شيء لتراه هنا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات