일부 비동기 프로그래밍 개념을 고민하려고합니다.Node.JS/async for 루프, 중첩 콜백의 현재 반복
지금 당장 본질적으로 두 가지 기능이 있습니다. 당분간 getOne 및 getAll을 호출 할 수 있습니다. getAll은 본질적으로 계열의 루프를 만들고 getOne을 호출 한 다음이를 해시에 매핑하고 다시 체인으로 보냅니다. 여기서 커피 스크립트에서 I 가진 것을 기본적 :
getOne = (key, callback) ->
try
# find object referenced by key
object = "blah blah"
callback(null, object)
catch(error)
callback(error, null)
getAll = (keys, callback) ->
results = {}
try
count = keys.length
for i, key of keys
count--
getOne key, (err, result) ->
if(err)
# do something
else
results[key] = result
if count is 0
callback "", results
catch
callback error, results
위의 코드는 기본적으로 키 루프 방식 A가 비동기 처리 예상되는 예상 데이터와 반드시 라인업없는 해시를 출력한다. 그러나 루프를 차단하지 않고 병렬 처리를 유지하는 대신 모든 것을 직렬로 처리하는 솔루션을 생각해 낼 수 없습니다.
무엇이 누락 되었습니까?