У меня есть эта функция. Цель состоит в том, чтобы дождаться завершения внешнего статуса перед вызовом другой функции.бесконечный цикл с SetInterval
var renderEditClickWrapper = function(event)
{
var wait = false;
function waitForSavingDone(){
if (options.dataStatusHandler.getStatus() == 'saving'){
wait = setInterval(function(){
waitForSavingDone();
}, 800);
}else{
wait = false;
call.renderEdit(event.data.name, event.data.rowId, event.data.parentId, event.data.options);
}
}
if (!wait) waitForSavingDone();
return false;
};
Это работает, однако, когда функции ждут один раз, функция вызывается снова и снова.
Я также использую jQuery.
Любая идея, что я делаю неправильно?
'setInterval' работает несколько раз на интервал времени, который вы предоставляете. Из-за этого количество интервалов работает экспоненциально с рекурсивными вызовами. Либо измените его на 'setTimeout', либо просто создайте один' setInterval', который будет отменен с помощью 'clearInterval', когда будет готов. –
... не API, который вы вызываете, позволяет передать функцию обратного вызова? Это было бы намного лучше и более идиоматично, чем опрос на изменение статуса. –
@squint doh! Я хотел использовать setTimeout – jdog