Javascript简单函数返回未定义
我不知道为什么这个返回未定义。 我在谷歌上搜索了一些东西,但没有找到结果Javascript简单函数返回未定义,javascript,Javascript,我不知道为什么这个返回未定义。 我在谷歌上搜索了一些东西,但没有找到结果 function getItemPrice(item_id) { pool.query('SELECT item_price FROM bank WHERE item_id ='+item_id, function(err, row) { console.log(row[0].item_price); return row[0].item_price; }); } 这显示了
function getItemPrice(item_id) {
pool.query('SELECT item_price FROM bank WHERE item_id ='+item_id, function(err, row) {
console.log(row[0].item_price);
return row[0].item_price;
});
}
这显示了控制台中有效的价格
但在这里,它显示的不是未定义的
items.forEach(function(itemObj){
var item_price = getItemPrice(itemObj.id);
console.log(item_price);
});
这是一个简单的mysql查询,获取项目的价格。查询是异步函数。getItemPrice返回未定义,需要返回回调。以下是一个例子:
function getItemPrice(item_id, cb) {
pool.query('SELECT item_price FROM bank WHERE item_id ='+item_id, function(err, row) {
return cb(row[0].item_price);
});
}
getItemPrice(id, function(row) {
console.log('Your row', row);
});
哦,好吧,我试过了,但是如何从“getItemPrice(id,function(row){”中得到它呢?因为我需要在
项之外得到它。forEach“我认为这是一种不好的做法。经常敲数据库。为什么不能立即返回一组标识符?”从item_id所在的银行选择item_price(“+collection.join(”,“)+”)结果是:您不需要通过标识符进行请求,而是发送整个数组,因此它将更快、更实用