2017-02-27 1 views
0

JavaScript 함수 내부에 있고 캔버스 요소를 업데이트하려는 경우 함수가 반환 될 때만 업데이트가 수행됩니다. 때로는 캔버스를 업데이트하고 기능을 계속 실행하기를 원합니다. 이것을 달성 할 수있는 방법이 있습니까?함수 이전에 캔버스 업데이트

+1

이 질문은 매우 광범위하다. 우리가 고칠 수 있도록 코드를 게시 할 수 있습니까? –

+0

@WaisKamal 그것은 코드에 관한 것이 아니며 일반적으로 솔루션이 있는지 알고 싶습니다. 그것이 약간 넓은 이유입니다. – saadtaame

+1

생성기 기능을 사용하십시오. 이들은 인터럽트 가능한 실행을 생성하는 수단을 제공합니다. yield 문은 중단 점을 정의하고 두 번째 제어되는 timed 애니메이션 프레임 루프는 제공된 iteration 객체에서 next를 호출하여 yield에서 yield 문까지의 진행을 제어 할 수 있습니다. 이 대답은 알고리즘의 단계를 시각화하는 방법을 보여줍니다. http://stackoverflow.com/a/40741857/3877726 – Blindman67

답변

1

일반적으로 아니오입니다. 스크립트 루틴이 종료 될 때까지 브라우저가 모든 UI 이벤트를 차단하기 때문에이를 수행하는 간단한 방법은 없습니다. 여기에는 캔버스 업데이트 (예 : 스크립트가 무한 루프에 이르렀을 때와 같이 브라우저 창을 닫을 때까지 이전에 본 적이있을 수 있음)이 포함됩니다.

어쨌든, 지점에서의 setTimeout을 사용하고이 작업을 수행 할 수있는 더 많거나 적은 추한 방법은 어디에서 당신은 당신의 캔버스를 업데이트하려면 :

function reactOnSomething(){ 
    doSomeStuff(); 
    drawMyCanvas(); 
    setTimeout(function(){ 
     goOnWithOtherStuff(); 
    }, 20); 
} 
관련 문제