Тайм-аут (на самом деле, вероятно, интервал, который отменяет себя) - единственный хороший способ в JavaScript «ждать» чего-либо.В противном случае, поскольку существует только один поток, вы в конечном итоге блокируете все остальные выполнения JS в браузере.Другим вариантом было бы, чтобы что-то вызывало вашу функцию, когда статус становится 2 (используйте обратный вызов).
«Ожидание» приближается так:
var myWait = setInterval(function () {
if (status == 2) {
clearInterval(myWait);
myFunction();
}
}, 100);