Javascript 如何为邮件发送设置时间间隔-js
我正在为员工制定休假制度。如果员工向人力资源部请假, 当人力资源部未批准其休假请求时,从那时起,每一小时向人力资源部发送一封邮件,以供其批准或拒绝该休假请求 这是我的问题,我试着每隔一分钟发送一次邮件。它正常工作。但它一直在发送邮件。这意味着我的状态不正常 我的情况是Javascript 如何为邮件发送设置时间间隔-js,javascript,reactjs,Javascript,Reactjs,我正在为员工制定休假制度。如果员工向人力资源部请假, 当人力资源部未批准其休假请求时,从那时起,每一小时向人力资源部发送一封邮件,以供其批准或拒绝该休假请求 这是我的问题,我试着每隔一分钟发送一次邮件。它正常工作。但它一直在发送邮件。这意味着我的状态不正常 我的情况是 如果将我的休假请求挂起至(休假状态=1),则发送 一个小时 如果批准了我的请求(休假状态=3),则停止发送 邮寄 这是我的密码 //邮件发送功能 function(err, res) { setInterval(funct
- 如果将我的休假请求挂起至(休假状态=1),则发送 一个小时
- 如果批准了我的请求(休假状态=3),则停止发送 邮寄
function(err, res) {
setInterval(function(){
if((ctx.result.leave_status === 1)&&!(ctx.result.leave_status === 3) )
{
console.log('resp: ' + emailsArray.toString());
type = res.type.description;
name = res.name.f_name;
LeaveDetails.app.models.Email.send({
to: emailsArray.toString(),
from: 'gnanaseelan@gmail.com',
subject: 'Leave Request ',
// text: 'my text',
html: '<h1 style="text-align:center;"> Report leave request</h1><h3>' + name + ' have requested leave</h3><ul><li><b>type: </b>' + type + '</li><li><b>duration: </b>' + duration + '</li><li><b>Number of days: </b>' + days + '</li></ul>,
},
function(err, mail) {
console.log('email sent!');
if(err !== null) {
log.error({
type: 'error',
model: 'leave-details',
method: 'create (email send)',user_id: ctx.result.user_id,
err: err,leaveData: ctx.result,}, 'leave request-email-failed');
}
else {
log.info({
type: 'success',
model: 'leave-details',
method: 'create (email send)',
user_id: ctx.result.user_id,
leaveDuration: ctx.result.leave_start_time + " " + ctx.result.leave_end_time,
err: err
}, 'leave request-email-success');
}
next(err);
});
}//if end
},60000);
}
函数(err,res){
setInterval(函数(){
如果((ctx.result.leave_status==1)和&!(ctx.result.leave_status==3))
{
log('resp:'+emailsArray.toString());
类型=res.type.description;
name=res.name.f_name;
LeaveDetails.app.models.Email.send({
收件人:emailsArray.toString(),
发件人:'gnanaseelan@gmail.com',
主题:'请假',
//文本:“我的文本”,
html:“报告休假请求”+name+“已请求休假”- 类型:“+type+”
- 持续时间:“+duration+”
- 天数:“+days+”
,
},
功能(错误、邮件){
log('email sent!');
如果(错误!==null){
日志错误({
键入:“错误”,
模型:“留下详细信息”,
方法:“创建(电子邮件发送)”,用户id:ctx.result.user\u id,
err:err,leaveData:ctx.result,},‘请假电子邮件失败’;
}
否则{
log.info({
键入:“成功”,
模型:“留下详细信息”,
方法:“创建(电子邮件发送)”,
用户id:ctx.result.user\u id,
离开持续时间:ctx.result.leave\u start\u time+“”+ctx.result.leave\u end\u time,
呃:呃
},“请假请求电子邮件成功”);
}
下一个(错误);
});
}//如果结束
},60000);
}
您必须清除interval才能停止发送电子邮件,最好的技巧是在构造函数中将interval设置为全局对象,然后在某些状态设置时清除它,例如,您有一个名为“finished:false”的状态如果finished设置为“true”,则componentWillUpdate o shouldComponentUpdate中的clearInterval,
如果不这样做,您的间隔将永远不会结束,直到您卸载时才会结束。切勿使用
setInterval
进行数据推送,除非您还准备好了所有代码,以便在遇到错误时取消该间隔。也就是说,你能看一下你的帖子,注意到代码到处都是,然后编辑它,使其看起来缩进、对齐等易读吗?(特别要注意的是,即使您的文件使用了制表符或四个空格,也只需在其上使用两个空格。在滚动条开始弹出之前,您的代码显示空间有限。一旦您看到滚动条,您可能包含了太多的代码,而这些代码不可能都是滚动条的一部分)@Mike'Pomax'Kamermans请查看我的代码请格式化您的代码。点击编辑,将其复制到文本编辑器中,修复缩进,删除与问题无关的位,然后用新代码更新帖子。现在,你所包含的内容中有一半以上与你所问的内容无关。不要将随后进入html
变量的数据提取包括在内,您可以将该变量设置为“html进入此处”“
等。请形成一个。