Answer the question
In order to leave comments, you need to log in
What will the callback function look like?
All good.
Can you please tell me if I wrote the callback correctly?
function start() {
//...тут какой-то код
checkResult(read);
}
function checkResult(last_read, callback) {
setTimeout(function() {
var result = getRead();
if (last_read < result) {
//...тут какой-то код
//первый блок
} else if (last_read > result) {
// ...тут какой-то код
//второй блок
} else {
//третий блок
checkResult(last_read);
}
}, 1000);
callback.call(start());
}
Answer the question
In order to leave comments, you need to log in
Task:
there is a time-varying environment, you need to start an asynchronous process that will periodically check some condition and, if it is true, call the function once and exit.
// условие, когда нужно исполнить функцию и завершить процесс
function readIsOK(read) {
return read != last_read;
}
// какие-то осмысленные действия, когда условие удовлетворяется
function doSomething(result) {
if (last_read < result) {
//...тут какой-то код
} else if (last_read > result) {
// ...тут какой-то код
}
}
// функция, которая запускает процесс
function start() {
// функция, которая ежесекундно проверяет условие
// если условие выполняется, делает полезное действие
// иначе процесс продолжается до следующего вызова checkRead
function checkResult() {
var result = getRead();
if(readIsOK(result)) doSomething(result);
setTimeout(checkResult, 1000);
}
// запускаем первую итерацию
checkResult();
}
start();
// условие, когда нужно исполнить функцию и завершить процесс
function readIsOK(read) {
return read != last_read;
}
// какие-то осмысленные действия, когда условие удовлетворяется
function doSomething(result) {
if (last_read < result) {
//...тут какой-то код
} else if (last_read > result) {
// ...тут какой-то код
}
}
// функция, которая запускает процесс
function start(callback) {
// функция, которая ежесекундно проверяет условие
// если условие выполняется, делает полезное действие
// иначе процесс продолжается до следующего вызова checkRead
function checkResult() {
var result = getRead();
if(readIsOK(result)) callback(result);
setTimeout(checkResult, 1000);
}
// запускаем первую итерацию
checkResult();
}
start(doSomething);
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question