У меня есть код, который выглядит так:
function myEventHandler() {
inMyEventHandler = true;
longRunningStuff();
inMyEventHandler = false;
}
Это прекрасно работает, за исключением iPad, где Safari Mobile время от времени прерывает мой Javascript с ошибкой. Поэтому longRunningStuff () умирает и inMyEventHandler никогда не очищается. Это очень плохо, потому что inMyEventHander абсолютно не может быть установлен , если мы находимся за пределами этой функции, или происходят плохие вещи (tm).
В идеале я мог бы просто проверить изнутри longRunningStuff, находится ли myEventHandler над ним в стеке вызовов, и это позаботилось бы само о себе. Я не могу найти способ сделать это ... Подсказки?