Структурируйте свой код на несколько слоев, чтобы по крайней мере у вас было четкое представление.
Ваш DAO должен быть:
const Entry = require('models.js');
function getAll(callback){
Entry.find({}).exec(function (err, data) {
callback(err, data);
});
}
function update(id, status, callback){
Entry.findOneAndUpdate({
_id: id
}, {
$push: {statuscheck: status}
}).exec(function(err, update){
console.log(update);
callback(err, update);
});
}
Ваш цикл for должен находиться в status.js:
DAO.getAll(function(err, data){
for(var i =0; i< data.length; i++){
checkAndUpdate(data[i].url, data[i].id);
}
});
// This is seperate function to prevent "i" value to be overridden as your dependent on third party.
function checkAndUpdate(url, id){
https.get(url, function (res) {
DAO.update(id, res.statusCode, function(err, data){
console.log("updated");
});
}).on('error', function (e) {
console.error(e);
});
}
При выполнении вещи периодически в фоновом режиме & mdash; JobScheduler
, WorkManager
, AlarmManager
, push-сообщения FCM и т. Д. & Mdash; Вы должны принять во внимание, что ваш процесс может отсутствовать, когда вам пора выполнять свою работу. Android раскроет вам процесс, но он «начинается с нуля». Все, что ваш пользовательский интерфейс мог установить в памяти, например, в базе данных, было бы для какого-то предыдущего процесса и не могло бы быть настроено в новом процессе.