数据在函数中使用之前发生变化
Data changing before it's used in function
我一直在尝试为数据库中的每张过期票发送一封电子邮件。它的片段看起来像这样:
for (var i = 0; I < rows.length; ++i) {
if (today > new Date(rows[i].end_date)) {
(function(id) {
db.exec('update tickets ' +
'set status="expired" ' +
'where ticket_id= ' + id + ';' +
'insert into changes ' +
'values(' + id + ',' +
'"system",' +
'"ticket expired",' +
'"' + (today.getUTCMonth() + 1) +
'/' + today.getUTCDate() +
'/' + today.getUTCFullYear() +
'");',
function(err) {
if (err) {
console.log(err);
return;
}
console.log(id);
sendAlert(id);
}
);
})(rows[i].ticket_id);
}
}
如您所见,我尝试使用匿名函数来防止每次调用中的数据发生变化,但它仍然不起作用。
不知道是不是漏了什么
我一直在尝试为数据库中的每张过期票发送一封电子邮件。它的片段看起来像这样:
for (var i = 0; I < rows.length; ++i) {
if (today > new Date(rows[i].end_date)) {
(function(id) {
db.exec('update tickets ' +
'set status="expired" ' +
'where ticket_id= ' + id + ';' +
'insert into changes ' +
'values(' + id + ',' +
'"system",' +
'"ticket expired",' +
'"' + (today.getUTCMonth() + 1) +
'/' + today.getUTCDate() +
'/' + today.getUTCFullYear() +
'");',
function(err) {
if (err) {
console.log(err);
return;
}
console.log(id);
sendAlert(id);
}
);
})(rows[i].ticket_id);
}
}
如您所见,我尝试使用匿名函数来防止每次调用中的数据发生变化,但它仍然不起作用。
不知道是不是漏了什么