원격 파일 배열의 배열이 있습니다. 나는 단순히 foreach 배열을 사용하고 foreach의 본문에서 데이터 다운로드를위한 HTTP GET 요청을 시작한다. 하지만 모든 것이 비동기이며 요청 콜백에 파일을 저장하려면 파일 이름을 알아야합니다.콜백에서 배열 및 배열 멤버 사용
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
데모 코드 :
files = ["url.com/file.png", "url.com/file.doc"]
for file in files
req = http.get file, (response) =>
response.setEncoding 'binary'
body = ""
response.on "data", (chunk) =>
body += chunk
response.on "end",() =>
#Here I needs to know the file name to save it
fs.writeFileSync @currentFolder + "/Files/" + file, body, "binary"
감사합니다!
무엇이 문제입니까? 'url.com/file.png'을'file.png'로 변환하는 방법을 묻고 있습니까? – Eric
아니요, writeFileSync에 맞춰 원래 변수 "file"의 값을 가져와야합니다. 하지만 모든 것이 비동기이므로 변수 "파일"은 마지막 파일 이름으로 만 채워집니다. –
정말입니까? 나는 루프를위한 coffeescript가 이런 종류의 문제를 막기 위해 클로저를 사용한다고 생각했다. – Eric