如何使用 "setInterval" 控制此代码?

How can I control this code with "setInterval"?

我尝试创建一个函数以在 setInterval 中使用该代码,但是当我使用该代码创建一个函数时它停止工作。我几乎尝试了一切。你们能帮帮我吗?

(async () => {

  let feed = await parser.parseURL(url);


    
  feed.items.forEach(item => {
       const habert = item.pubDate;
       const d2 = new Date(habert)
     
       var diffMs = (d1 - d2);
       var diffHrs = Math.floor((diffMs % 86400000) / 3600000); // hours
       var diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes
       
       if(diffMins <= 5 && diffHrs <= 0){
            //console.log(` Yeni haber geldi: `+'\n'+"Başlık: "+ item.title+`\n`+"İçerik: "+ item.content+ "İçerik sisteme kayıt edildi."+ `\n`+ item.pubDate)
            const haber_baslik = item.title;
            console.log(haber_baslik);
            if(db.get('sonhaber') != haber_baslik){
              db.set('sonhaber', haber_baslik);
            
              bot.sendMessage('@borugazetesi', ` : ${item.title} \n \n  ${item.content}`);
              
            }else{
              return console.log("Son haber zaten sorunsuz bir şekilde gönderildi.");
          }
           //console.log(sorgu);
          }
           
          
  
  });

//setInterval(haberkontrol, 600);

})();

您没有正确定义您的函数,并且您在设置间隔调用的函数中调用了 setInterval。

你能试试这个吗?我希望它能工作,但我认为每秒检查所有记录效率不高。

const habercontrol =  () => {

   parser.parseURL(url).then((feed)=>{

      
        feed.items.forEach(item => {
            const habert = item.pubDate;
            const d2 = new Date(habert)
          
            var diffMs = (d1 - d2);
            var diffHrs = Math.floor((diffMs % 86400000) / 3600000); // hours
            var diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes
            
            if(diffMins <= 5 && diffHrs <= 0){
                 //console.log(` Yeni haber geldi: `+'\n'+"Başlık: "+ item.title+`\n`+"İçerik: "+ item.content+ "İçerik sisteme kayıt edildi."+ `\n`+ item.pubDate)
                 const haber_baslik = item.title;
                 console.log(haber_baslik);
                 if(db.get('sonhaber') != haber_baslik){
                   db.set('sonhaber', haber_baslik);
                 
                   bot.sendMessage('@borugazetesi', ` : ${item.title} \n \n  ${item.content}`);
                   
                 }else{
                   return console.log("Son haber zaten sorunsuz bir şekilde gönderildi.");
               }
                //console.log(sorgu);
               }
       });


    });
  
  
  };
  
  setInterval(habercontrol, 600);