antonhauff,
Не знаю, что у вас в функции getread(), но я бы вынес обращение к ней повыше - чтобы оно шло один раз за цикл анализа результата
function checkResult(last_read) {
setTimeout(function() {
var readresult = getread();
if (last_read < readresult) {
//1-ый блок
} else if (last_read > readresult) {
//2-ый блок
} else {
//3-ый блок
checkResult(last_read);
}
}, 500);
}
При двух отдельных вызовах могут быть разные результаты, и логика проверки нарушается