2017-05-11 7 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をループすることができる約束事はありますか?私はあなたのPromise.all()呼び出しでquery1Pとquery3Pの間にカンマがない気づきが

おかげ

+0

配列リテラルを渡さず、 'then'の代わりに' spread'を使用しないでください。 – Bergi

答えて

0

は、これは(自動的に行わなければならない。また、.spread().then()

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

と交換する必要があります

「test」と「blah」を結局解決できる実際の約束で置き換えてください。

+0

私はこの 'Promise.all([配列])のようにすることができます .then(機能(応答){ console.log(応答); })' – user557657

+0

まさに。 .then()関数に渡される最初の引数は、.all()メソッドに渡された要求の応答の配列です。 –

関連する問題