我有一个简单的 Date 类,其中包含一些函数。其中之一是 SetMonthAndYear。
我使用 module.export 导出此类,以便其他类可以访问它:
class Date {
currentMonth = 0;
currentYear = 0;
async SetMonthAndYear(timeStamp){
var date = new Date(timeStamp);
if(date.getFullYear() != this.currentYear || (date.getMonth() + 1) != this.currentMonth){
this.currentYear = new Date(Date.now()).getFullYear();
this.currentMonth = new Date(Date.now()).getMonth() + 1; // getMonth() gives 1 month earlier for some reason.
console.log("New month and year is set: " + this.currentMonth + " - " + this.currentYear)
return true;
}
return false;
}
}
module.exports = new Date();
在其他课程中,我请求此函数来检查月份和年份是否需要像这样更新:
var dateClass = require(./Date.js);
class OtherClass
{
var currentTimeStamp = ~some timestamp~;
if (await dateClass.SetMonthAndYear(currentTimeStamp))
{
console.Log("The month and year are modified");
}
console.Log("Done.");
}
现在奇怪的部分: 第一次运行此代码设置月份和年份并将其作为输出(我期望的):
New month and year is set: 1 - 2025
The month and year are modified
Done.
第二次运行这是输出:
The month and year are modified
Done.
所以在函数中 if 语句被视为 false,但该函数似乎返回 true,而我期望 false 作为返回值?
我是 Nodejs 模块导出的新手,怀疑我在这里做错了什么,但不知道到底是什么?
由于我没有足够的代表来发表评论,所以我正在写答案。