2017-03-03 4 views
-1

bluebird를 사용중인 첫 번째 nodejs 응용 프로그램에서 작업하고 있습니다. 각 호출에 대한 약속을 반환하는 for 루프 내에서 비동기 메서드를 호출해야한다는 요구 사항이 있습니다. 나는 모든 약속을 하나로 결합하고 싶습니다. 어떻게 이것을 할 수 있습니까? 어떤 도움이라도 대단히 감사합니다.반환 된 약속을 비동기 적으로 호출하고 참여하십시오.

mongodb에서 문서 집합을 가져오고 반환 된 문서 집합을 반복하고 약속을 반환하는 비동기 메서드에 매개 변수로 필드를 전달해야합니다. 루프에서이 작업을 수행하고 있기 때문에 모든 약속을 하나의 약속으로 결합하는 방법이 필요합니다.

+0

당신이 당신의 관련 코드를 포함하는 경우 당신은 항상 특정 상황에 더 나은 및 더 구체적인 대답 taylored을 얻을 것이다. 아마도 Bluebird를 사용하기 때문에 (Promise.map()와 같은) 멋진 함수를 사용하여 코드를 단순화 할 수는 있지만 실제 코드를 포함 할 때까지 확신 할 수는 없습니다. 코드에 대한 질문에는 항상 일부 코드. – jfriend00

답변

1

당신은 .all() 방법을 사용할 수 있습니다 : http://bluebirdjs.com/docs/api/promise.all.html

예 :

var promises = []; 

for (var i = 0; i < 100; ++i) { 
    promises.push(yourPromise); 
} 

Promise.all(promises).then(function(values) { 
    // All your promises are resolved 
    // Promises results are stored in values argument 
    console.log(values); 
}); 
+0

구세주 감사합니다! –