gpt4 book ai didi

javascript - Mysql Node.js 异步,等待查询完成

转载 作者:行者123 更新时间:2023-11-29 16:45:00 26 4
gpt4 key购买 nike

一直在尝试一切让它工作,特别是异步每个方法。 for (resultsHistory 的 const 元素) 也不起作用。

我试图通过运行 foreach 并执行 mysql 查询来修改先前查询的结果数组。

但是这需要等待查询完成。

有没有一种方法可以访问这些结果,而无需我手动放置以等待查询完成的 setTimeout(function() { } ?

        function getUserLikes(params, callback) {
var usersArrayCat = [];
console.log(`length of array ${params.length}`)
// 1 here means 1 request at a time
async.eachLimit(params, 1, function (element, cb) {
element.liked = 0;
var queryLiked = `SELECT * from users_likes WHERE user_id = \"${req.body.userid}\" AND product_id = \"${element.product_id}\"`;
connectionPromise.query(queryLiked, function (err, result) {
if (!result) {
} else if (result.length == 0) {

} else {
element.liked = result[0].userlike;

usersArrayCat.push(element);
// console.log(usersArrayCat);
cb();
}
})
}, function (err) {
if (err) return callback(err);
callback(null, usersArrayCat)
});
};

getUserLikes(resultsHistory, function (e) {
console.log(e);
});



if(!res.headersSent) {

setTimeout(function() {

res.send(JSON.stringify({"status": 200 ,"error": null, "top3":resultsHistory}));
}, 150);


}

最佳答案

设法让它像这样工作,但仍然不确定这是否是正确的方法。

async function getUserLikes(resultsHistory) {
for (const element of resultsHistory) {
element.liked = 0;
let queryLiked = `SELECT * from users_likes WHERE user_id = \"${req.body.userid}\" AND product_id = \"${element.product_id}\"`;
let liked = await conn2.query(queryLiked);

if (liked[0]) {
element.liked = liked[0].userlike;
}
}
if(!res.headersSent) {
conn2.release();
let newres = resultsHistory.sort(
firstBy(function (v1, v2) { return v2.rating - v1.rating; })
.thenBy(function (v1, v2) { return v2.dranktimes - v1.dranktimes; })
).filter( function(history) {
return history.event === eventName;
}).slice(0, 3);

res.send({"status": 200 ,"error": null, "top3":newres});
}
}

getUserLikes(resultsHistory);

关于javascript - Mysql Node.js 异步,等待查询完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53144458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com