낯선 것들:
Asynchronous loop
이건 문제와 해결책을 보면 이해가 용이하다. 단지 해결 방식이 복잡하다는 것이 문제다.
files array의 element(file이름)를 하나씩 빼서 "albums/" 폴더 아래에 존재하는 지 확인 후 directory라면 only_dirs array에 추가하고자 한다.
우리는 file 하나씩 하나씩 하고자 한다.
하지만, 위의 코드로는 그것이 불가능하다. for loop은 위의 동작을 하나씩 순차적으로 하는 것이 아니라 nonblocking 함수인 fs.stat를 순식간에 호출하여 callback을 등록하고는 종료되어 버린다.
우리가 원하는 대로 asynchronous 동작이 순차적으로 실행되기 위해서는 아래와 같은 pattern으로 loop을 작성하면 된다.
맨 위의 코드를 위의 pattern을 사용하여 작성하면 아래와 같다.
정리
1. Asynchronous iteration을 위해서는 위의 pattern을 사용하자.
댓글 없음:
댓글 쓰기