node.jsのES6ネイティブ約束を使用してクエリを呼び出す方法以下はコードです。node.jsでES6 promiseを使用して空の応答を返す
let arr= [];
conn.query('select * from table1', (err, b) => {
for (let i = 0; i < b.length; i++) {
console.log(b[i]["id"])
let promiseGetData = new Promise((resolve, reject) => {
conn.query('select * from table2 where id = ?', [b[i]["id"]], (err, ce) => {
if (err) {
const response = {
statusCode: 500,
body: JSON.stringify({
message: err
}),
}
reject(response);
} else {
if (ce.length != 0) {
resolve(ce);
}
}
});
});
promiseGetData .then((data) => {
b[i]['data'] = data;
arr.push(b[i])
}).catch((err) => {
console.log(err);
});
}
console.log(b)
})
console.log(b)を実行すると空の応答が表示されます。私は正しい方法で約束を使用したかどうかは分かりませんが、私は約束でも実行しなければならない最初の照会について考えます。どんな助けも大変ありがとうございます
ce.length == 0とした場合、エラーはありませんか? –
@GrantParkはい私はエラーがないことを確認しましたが、実際には2番目のクエリの前にconsole.logを配置していますが、その後はクエリデータを見ることはできませんが、長さ== 0 –
その場合は、2番目のクエリにconsole.logを置き、それが実行されているかどうかを確認してください。 –