2013-03-25 2 views
0

또는 다운로드가 완료 될 때까지 자바 스크립트 프로그램이 멈추는 동일한 효과 (즉, setTimeout을 사용하지 않음)를 생성하는 방법이 있습니까?Google 드라이브에서 파일을 동시에 다운로드하는 방법은 무엇인가요?

+3

잘못된 해결책입니다. js 프로그램은 비동기를 처리해야합니다. –

+0

이 API와 같은 비동기 함수는 콜백을받습니다. 즉, 작업이 완료된 후에 호출되는 함수입니다. 콜백에 코드의 속편을 넣어야합니다. 문서의 예를 참조하십시오. –

+0

감사합니다 dystroy와 Herms! 우리는 그것을 시도 할 것이다. –

답변

0

자바 스크립트는 비동기식이므로 다운로드를 비동기 적으로 처리해야합니다. 이는 주로 자바 스크립트가 단일 스레드로 실행되기 때문에 주로 UI 스레드와 공유되므로 다운로드시 코드를 차단하면 코드가 끝날 때까지 사용자가 페이지와 상호 작용할 수 없기 때문입니다.

그러나 파일을 다운로드 할 때 사용하는 메커니즘이 완료되면 콜백을 지원하는 한 비동기 적으로 처리해야합니다. , 다음과 같은 코드를 재구성 할 다운로드 메커니즘이 (다운로드가 완료되거나 실패 후 호출 할 함수를) 끝낼 콜백을 지원하는 경우

function doDownload(url) { 
    doSomeInitialStuff(); 
    startDownload(url); // assuming this would block, which it can't 
    doSomeOtherStuff(); 
    doMoreOtherStuff(); 
} 

:

는 다음과 같은 코드를 가지고 말 그래서 :

function doDownload(url) { 
    doSomeInitialStuff(); 
    startDownload(url, onDownloadComplete); 
} 

function onDownloadComplete() { 
    doSomeOtherStuff(); 
    doMoreOtherStuff(); 
} 

당신이 작업 (이 다운로드 코드를 제공 어떻게 그것을 전달 인수를) 콜백 방법의 구체적인 사용중인 JS 라이브러리에 따라 달라질 수 있지만,이 방법에 대한 기본적인 생각이다 비동기로 처리 할 수 ​​있습니다.

관련 문제