在库内部调用 'Interval.after' 时,Luxon returns 无效间隔
Luxon returns Invalid Interval when 'Interval.after' is called inside library
当在库中调用 Interval.after
方法时,我遇到了 Luxon 的奇怪问题。
const interval = Interval.after(dateTime, duration);
以下日志来自应用程序 DateTime__Duration
,第二行是 Interval.after
的记录结果:
1535806800000__PT330M
[2018-09-01T16:00:00.000+03:00 – 2018-09-01T21:30:00.000+03:00)
但是,如果我将这些值传递给库方法并在那里观察日志:
1535806800000__PT330M
Invalid Interval
原因是invalid endpoints
。为 DateTime
调用 isValid
和 Duration
returns true.
如果我以与应用程序完全相同的方式初始化 DateTime
和 Duration
,那么 Interval.after
在库中工作。
const interval2 = Interval.after(DateTime.fromISO('2018-09-01T16:00:00.000+03:00',
{zone: 'Europe/Helsinki'}), Duration.fromObject({ minutes: 330 }));
两个调用都使用相同的对象,但 Interval.after
仅在应用程序内部有效。知道是什么原因造成的吗?
更新
这似乎与 DateTime
有某种关系。即使 luxon 版本相同,它在应用程序和库中的行为是否会有所不同?据我了解,luxon 没有依赖项。
更新 2
我设法获得了此设置的复制版本。应用程序和库源都可以从 http://www.filedropper.com/luxon
下载
为了将本地库链接到应用程序,我在库中使用了 yarn link
,之后在应用程序中使用了 yarn link "luxon-test-lib"
。
发生这种情况的原因是由于在开发时本地链接库。因此,即使 app 和 lib 都有相同的 luxon 版本,它们都有单独的模块。由于那里使用了 instanceof
检查,导致 luxon 库中断。
当在库中调用 Interval.after
方法时,我遇到了 Luxon 的奇怪问题。
const interval = Interval.after(dateTime, duration);
以下日志来自应用程序 DateTime__Duration
,第二行是 Interval.after
的记录结果:
1535806800000__PT330M
[2018-09-01T16:00:00.000+03:00 – 2018-09-01T21:30:00.000+03:00)
但是,如果我将这些值传递给库方法并在那里观察日志:
1535806800000__PT330M
Invalid Interval
原因是invalid endpoints
。为 DateTime
调用 isValid
和 Duration
returns true.
如果我以与应用程序完全相同的方式初始化 DateTime
和 Duration
,那么 Interval.after
在库中工作。
const interval2 = Interval.after(DateTime.fromISO('2018-09-01T16:00:00.000+03:00',
{zone: 'Europe/Helsinki'}), Duration.fromObject({ minutes: 330 }));
两个调用都使用相同的对象,但 Interval.after
仅在应用程序内部有效。知道是什么原因造成的吗?
更新
这似乎与 DateTime
有某种关系。即使 luxon 版本相同,它在应用程序和库中的行为是否会有所不同?据我了解,luxon 没有依赖项。
更新 2
我设法获得了此设置的复制版本。应用程序和库源都可以从 http://www.filedropper.com/luxon
下载为了将本地库链接到应用程序,我在库中使用了 yarn link
,之后在应用程序中使用了 yarn link "luxon-test-lib"
。
发生这种情况的原因是由于在开发时本地链接库。因此,即使 app 和 lib 都有相同的 luxon 版本,它们都有单独的模块。由于那里使用了 instanceof
检查,导致 luxon 库中断。