如何使用 "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);
我尝试创建一个函数以在 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);