У меня есть цикл while, внутри которого я вызываю отложенный метод, и обычный метод возвращает значение. Проблема заключается в том, что цикл while продолжается с каждой итерацией, а возвращаемое значение от отложенного метода и обычных методов не является последовательным. некоторые возвращаемые значения отложенного метода опаздывают. Как сделать цикл while ждать, пока отложенный метод вернет значение.Отложенный метод внутри цикла while
Пожалуйста, дайте мне решение, застрявшее в этом в течение нескольких дней.
Обновление: псевдо-код
while(!stopProcess){
var pageno=findpageno(param);
findPageNoRecursively.done(pagenum){
pageno=pagenum;
}
return pageno;
}
Любая помощь будет высоко оценен
Пожалуйста, предоставьте ваш код. – Regent
, если цикл while имеет некоторые асинхронные операции, тогда вы не можете этого сделать ... вам нужно поделиться своим кодом, чтобы мы предложили любое решение. –
Ваш псевдокод ошибочен. Вы присваиваете результат 'findpageno()' '' pageno' переменной, определенной на каждой итерации. После этого вы назначаете обработчик завершенным и используете одно и то же имя переменной в этом обработчике (т. Е. Вы скрываете ранее определенную переменную pageno. Это определенно ошибка. И ваш отложенный также создается в этом цикле, или вы назначая обработчикам один и тот же? Попробуйте разбить свой код на небольшие функции с одной ответственностью и дать лучшее объяснение проблемы. –