从全局变量读取并保存列表



不是最佳实践,但我想要存储一个包含type和datetime的对象数组。我用它来发送邮件,我不想发送垃圾邮件,但是限制了,所以一个类型每15分钟只发送一次邮件:

var sendMail = true;
var emailType = "test" // set for test
var log = []
var tempLog = global.get("emaillog")
// read the log from global variables
if ( typeof tempLog !== 'undefined' && tempLog )
{
  log = tempLog
}
// search the log
for (var i = 0, len = log.length; i < len; i++) 
{
    var logElement = log[i]
    var logElementEmailType = logElement.Type
    var logElementEmailDateTime = logElement.DateTime
    var dif = new Date() - logElementEmailDateTime;
    if (logElementEmailType == emailType && Math.abs(dif/1000) < (60*5))
    {
        sendMail = false
    }
}
// add to log
var newLogElement = 
{
    DateTime: new Date(),
    Type: mailType
}
log.push(newLogElement)
// save global variable
global.set("maillog",log)

但这不起作用,给我发垃圾邮件:D

我相信这个差别是以毫秒为单位的。将其除以1000得到微秒。

最新更新