Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为邮件发送设置时间间隔-js_Javascript_Reactjs - Fatal编程技术网

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进入此处”

等。请形成一个。