Здравствуйте. Пытаюсь решить нетривиальную задачу: например, имея некий кусок кода, который выполнится с задержкой в полсекунды, я пытаюсь заморозить это выполнение на секунду
var st = +new Date();
setTimeout(function() {
var sf = +new Date();
//sf должна быть больше, чем (st + 1000);
done();
}, 500);
freeze();
Мой вариант:
var st = +new Date(),
timerFlag = false;
st += 1000;
setTimeout(function() {
var sf = +new Date();
done();
console.log('#500');
}, 500);
function done() {
var timer = setInterval(function() {
if(timerFlag) {
timerFlag = false;
clearInterval(timer);
}
}, 500);
}
function freeze() {
setTimeout(function() {
timerFlag = true;
console.log('#1000');
}, 1000);
}
freeze();
Но мой вариант не является правильным. Помогите разобраться с этими таймингами, пожалуйста.