我有很多调度任务功能,这些功能依赖于项目中日期时间值的众多便利变量,例如想象像这样的10行以上:
let today = moment(),
yesterday = moment().subtract(1, 'days'),
startOfToday = moment(today).startOf("day"),
endOfToday = moment(today).endOf("day");
我无法将这种初始化代码放在myCode.js文件的顶部,因为它会导致错误-myCode.js中的函数将引用过时的日期时间。例如今天将始终指节点服务器启动的日期时间。
现在我正在初始化每个函数中的日期,但这会导致代码重复。
是否有一种更清洁的方法?
我正在考虑的选项:
a)创建一个初始化所有常用日期的函数,并在函数顶部调用它。
b)内联moment.js日期时间值,并完全摆脱了便利变量(有效,但使代码更难阅读)。
要点提示
谢谢
-S。阿罗拉
答案 0 :(得分:1)
执行此操作的一种方法是使用所有这些便捷方法创建一个classpath 'com.android.tools.build:gradle:3.2.0'
模块,然后您就可以导入所需的任何文件。
由于您的输出始终是日期,因此您可以使用一个util
方法来接受字符串:
getDate
通过这种方式,您可以很容易地理解所要执行的操作,在该utils模块中,您可以简单地拥有一个switch语句,该语句根据字符串返回正确的日期输出:
getDate('yesterday')
getDate('endOfToday')
如果您不喜欢传递switch(dateString) {
case 'today':
return moment()
case 'yesterday':
return moment().subtract(1, 'days')
...
}
(尽管这样做不多),则可以创建一个frozen class in ES6来模拟enumeration并通过它来进行工作。
您还可以创建一个包含这些类并使用该类的单例类……主要思想是有一种方法可以向您返回日期……factory pattern。