2014-10-01 3 views
1

질문이 있습니다.JS/Bluebird Sequelize : 비동기 병렬 DB 호출로 시작

저는 2 db 콜을 시작한 다음 약속 체인을 계속하기를 원했습니다. 내가 한

이 오히려 hackish 방법은이 같은 약속을 시작했다 :

db.Model.find().then(function() { 
    return [ 
     firstcall, 
     secondcall 
    ] 
}).spread(function(resultFromFirstCall, resultFromSecondCall) { 
    //do something once both calls completed 
}); 

가 빈 DB 호출로 약속 체인을 시작 괜찮은? 아니면 더 좋은 방법이 있습니다.

비동기 라이브러리를 가져올 수 있지만 비어있는 db.Model.find() 호출을 수행 할 때 성능에 영향이 없다면이 방법이 더 명확한 방법이라고 생각합니다.

답변

-1

것을 확신, 내가 SequelizeJS을 사용한 적이 있기 때문에 빈 find 호출이 여기에 어떻게 할 것인지 확실하지 않다 , 나는 그것을하는 더 나은 방법을 발견했다.

Promise.resolve().then(function() { 
    return [ 
     firstCall(), 
     secondCall() 
    ]; 
}).spread(function(resultFromFirst, resultFromSecond) { 
    //do something with resultFromFirst and resultFromSecond 
}); 
+2

는 downvote를 설명합니다. – Calvintwr

4

는 그러나 나는 내가 무엇을 당신이 찾고있는 것은 약간의 시간이 지나면 아마 Promise.join

Promise.join(firstCall, secondCall, function(firstResult, secondResult) { 
    // Whatever 
}); 
+0

감사합니다. – Calvintwr