node.js - new Date() 何时会在我的函数中运行?

标签 node.js date functional-programming

我对 Node 和 Javascript 还很陌生,只是想检查一下这里发生了什么,但我不确定要寻找什么。

我创建了几个用于比较日期的函数...

exports.isDateWithinRange = date => (from, to) => from <= date && date <= to;
exports.isCurrentDateInRange = isDateWithinRange(new Date());

这些工作(目前),但我只是想检查一下。

第二行...new Date() 何时计算?

  • 每次调用函数 isCurrentDateInRange 时都会计算它吗?
  • 还是第一次加载文件时就计算一次?

因为如果是后者我需要更改它。但如果不是问题的话我不想费心去改变它。

谢谢

最佳答案

只要您需要该模块,就会构造 Date 对象。 isCurrentDateInRange 将是立即调用 isDateWithinRange 的结果。

为了避免这种情况,您可以使用导出的 isDateWithinRange 并且可以设置默认日期值,如下所示:

exports.isDateWithinRange = (date = new Date()) => (from, to) => from <= date && date <= to;

关于node.js - new Date() 何时会在我的函数中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57592651/

相关文章:

javascript - folktale 有 IO monad 吗?

node.js - 如何在 Node 中拦截传出的tcp消息?

javascript - Db.Collection 不是一个函数 MongoDB

javascript - 如何从过滤函数改进自制SQL语法?

mysql - 从日期范围中查找缺失的日期

python - 打印 csv 列中最旧和最新的日期 - 按日期对 csv 进行排序

scala - 功能等同于并发多映射

javascript - 对返回数组感到困惑#map javascript

node.js - Express.js hbs 模块 - 从 .hbs 文件注册部分内容

java - 在 GMT 中获取 UNIX 时间戳的快速 Java 6 实现