Поместите эту часть:
async function (err, toCheck) {
// The Same Logic
}
в первую очередь в отдельную переменную, чтобы вы могли передать ее обеим .find
s:
type CallbackType = Parameters<typeof Detail.find>[1];
const callback: CallbackType = async (err, toCheck) => {
// logic
};
// 1 min interval check
setInterval(function () {
Detail.find({ interval: 1 }, callback)
}, minutesToMS(1));
// 10 min interval check
setInterval(function () {
Detail.find({ interval: 10 }, callback)
}, minutesToMS(10));
Если вы также хотите избежать повторения { interval: 1 }
minutesToMS(1)
, затем:
type CallbackType = Parameters<typeof Detail.find>[1];
const callback: CallbackType = async (err, toCheck) => {
// logic
};
const makeInterval = (interval) => {
setInterval(function () {
Detail.find({ interval }, callback)
}, minutesToMS(interval));
};
makeInterval(1);
makeInterval(10);