【发布时间】:2018-08-02 16:42:45
【问题描述】:
问题是查询在循环内是异步的,我需要在 for 和所有查询完成时执行某些操作,如果我在 for 查询尚未执行之后执行某些操作
app.post('/consulta',(req,res)=>{
var data = req.body.frase;
let consulta;
let respuesta = [];
for(let i=1;i<data.length;i++){
consulta = `SELECT * FROM imagen WHERE nombre = "${data[i-1] +' '+ data[i]}"`;
connection.query(consulta, function (error, results, fields) {
if (error) throw error;
if(results.length > 0){ // Si existe una seña que tenga 2 palabras
data[i-1] = data[i-1] +" "+data[i]; // Unidos jamas seran vencidos
data.splice(i, 1);
}
});
}
})
【问题讨论】:
-
你应该使用承诺。
-
这里不知道怎么实现
-
你应该使用
Promise.all()。
标签: mysql node.js asynchronous