Я не уверен, является ли это возможным решением для вас, но вы можете достичь желаемого результата, разбив свой код на 2 функции.
Предположим, это то, что вы намереваетесь сделать:
В основном это ваша оригинальная функция:
function origFunc() {
codeBeforeThirdPartyFunc();
ThirdPartyFunc(oldCallBackFunc);
Wait();
codeAfterCallBackFunc();
}
Вы можете изменить поток кода следующим образом:
function newFunc() {
codeBeforeThirdPartyFunc();
ThirdPartyFunc(newCallBackFunc);
}
function newCallBackFunc() {
oldCallBackFunc();
codeAfterCallBackFunc();
}
Это исключит цикл ожидания. И, насколько я знаю, ожидание в IE не работает (потому что? Бог только знает) ..