2017-05-11 2 views
2

이 코드는 작동하지만 쿼리 매개 변수에 많이 의존합니다. 각 쿼리는 요청 매개 변수를 기반으로합니다.약속에 SQL 배열을 전달하는 방법

var query1P = connection.execute("SELECT * FROM C"); 

var query3P = connection.execute("SELECT * FROM A"); 

Promise.all([query1P query3P]).spread(function (result, result3) { 
res.status(200).json({ table: result.rows, table3: result3.rows }); 
return connection.close(); 
}) 
.catch(function (err) { 
console.log(err.message); 
return connection.close(); 
}); 

어떻게

[query3P, query1P, query2P]

queryArray = 같은 Promise.all 뭔가에 쿼리 배열을 전달할 수 있습니다 다시 배열의 결과를 얻을 수 있습니다. queryArray를 통해 반복 할 수있는 약속이 있습니까?

덕분에 내가 query1P과 query3P 사이에 쉼표가 Promise.all() 호출이없는 알 수 있지만 이것은 (자동으로 수행한다

+0

배열 리터럴을 전달하지 말고'then' 대신'spread'를 사용하지 마십시오. – Bergi

답변

0

. 또한, .spread()는 교체해야 .then()

Promise.all(['test', 'blah']) 
 
    .then(function(responses) { 
 
     console.log(responses); 
 
    })

'test'와 'blah'를 결국 해결할 실제 약속으로 바꿉니다.

+0

내가 할 수있는이'Promise.all (배열) . (기능 (응답) { console.log (응답); })' – user557657

+0

정확히. .then() 함수에 전달 된 첫 번째 인수는 .all() 메서드에 전달 된 요청의 응답 배열입니다. –

관련 문제