지연된 메서드 및 일반 메서드를 호출하는 while 루프는 둘 다 값을 반환합니다. 문제는 각 반복마다 while 루프가 진행되고 지연된 메서드의 반환 값이며 일반적인 메서드는 순차적이지 않습니다. 지연된 메소드의 일부 반환 값이 늦게 전달됩니다. 지연된 메소드가 값을 리턴 할 때까지 while 루프를 대기시키는 방법.while 루프 내부의 지연된 메서드
제발 해결책을 몇 일 동안 붙어 있습니다.
업데이트 : 사이비 코드
while(!stopProcess){
var pageno=findpageno(param);
findPageNoRecursively.done(pagenum){
pageno=pagenum;
}
return pageno;
}
어떤 도움은 매우
코드를 입력하십시오. – Regent
while 루프에 일부 비동기 작업이있는 경우이를 수행 할 수 없습니다. 솔루션을 제안하기 위해 코드를 공유해야합니다. –
의사 코드가 잘못되었습니다. 'findpageno()'의 결과를 모든 반복에서 정의 된 변수'pageno'에 할당합니다. 그런 다음 당신은 연기 된 핸들러를 할당하고 그 핸들러에서 같은 변수 이름을 사용합니다 (즉, 이전에 정의 된'pageno' 변수를 숨기고 있습니다.) 이것은 실수입니다. 또한 지연 또한이 루프에서 생성되거나 작은 단일 책임 함수로 코드를 나누고 문제에 대한 더 나은 설명을 제공하려고 시도하십시오. –