Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript简单函数返回未定义_Javascript - Fatal编程技术网

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(”,“)+”)结果是:您不需要通过标识符进行请求,而是发送整个数组,因此它将更快、更实用