从全局变量中读取和保存列表

Reading and saving a list from global variable

不是最佳实践,但我想要的是存储包含类型和日期时间的对象数组。我用它来发邮件,我不想发垃圾邮件,但是限制一个类型每 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

我相信 dif 以毫秒为单位。你将它除以 1000 得到微秒。