/ nodejs

sequelize.js 와 promise Q 함께쓰기

ISSUE

sequelize.js에서 promise 패턴으로 개발 할 수 있는데 return [] 은 지원하지 않는다.

return []

promise 패턴으로 가장 유명한 Q를 주로 사용한다.

return getUsername()
.then(function (username) {
    return [username, getUser(username)];
})
.spread(function (username, user) {
});

위와 같이 배열 형태로 비동기 코드를 리턴할 수 있다. 비동기 코드간의 순서가 상관 없다면 좋은 방법이다.
하지만 sequelize.js 에서 사용되는 프로미스 코드는 위와 같은 표현식을 정상적으로 수행하지 못한다ㅠㅜ

SOLUTION

다행히 간단히 해결할 수 있는 방법이 있어서 공유^^/

AS-IS

return [프로미스, 프로미스리턴값];

TO-BE

return Q.all([프로미스, 프로미스리턴값]);