2017-01-09 7 views
0

나는 여러 개의 선택에서 볼 수있는 데이터를 반환하려고 노력하고있다. 그리고 나는 async.parallel을 사용하고 있지만 콘솔 쇼에서는 나에게 Promise {<pending>}을 보여준다. 내가 필요합니다. var async = require('async');익스프레스 js - 비동기 보류 중

내가 처음 사용해 본 것은 처음부터 잘못하고있는 것입니까?

new(req, res) 
    { 
    async.parallel(
    { 
     one: function(callback) { 

     callback(null, request.query("SELECT * FROM table1 where ref like '90%'")); 
     }, 
     two: function(callback) { 

     callback(null, request.query("SELECT * FROM table2 where ref like 'K%'")); 

     } 
    }, function(err, results) 
    { 
     console.log("RESULT:"); 
     console.log(err); 

     return res.render('view-1', {"one": results.one, "two": results.two}); 
    }); 
    } 

어둠 속에서 당신에게

+0

이유 같은 약속을 가져올 수있는 것은, 당신이 '대기'표시 약속 해결하거나 –

+0

을 거부 적이 있기 때문에 내가 그렇게 할 수있는 방법입니다 ? @ R.Gulbrandsen – user3242861

+0

request.query, 어느 도서관을 사용하고 있습니까? –

답변

0

샷 감사합니다 약속

에 콜백에서 변경하려고
var request1 = new request.query("SELECT * FROM table1 where ref like '90%'"); 
var request2 = new request.query("SELECT * FROM table2 where ref like 'K%'"); 

return Promise.all([request1, request2]).then(function(listOfResults) { 
    return res.render(...); 
}).catch(function(err) { 
    // ... query error checks 
}); 

Promise.all의 만 두 쿼리가 성공적인 경우 해고하고 목록의 것 결과는 쿼리와 동일한 순서로 나타납니다. 당신이 ES6을 사용하지 않는 경우

다음 콘솔이

var Promise = require('bluebird');