【发布时间】:2019-05-03 17:41:29
【问题描述】:
我一直在努力让一个函数输出一个数组,但我所做的似乎没有让我返回一个数组或访问函数之外的数组。
我正在使用 node.js 和 mysql 并尝试提取行数据,对其进行修改,然后将其放入数组中。我似乎能够将它放入一个数组中,因为在函数中,我可以 console.log 我将数组设置为的变量,我得到了我正在寻找的东西。但我无法将它从阵列中取出。起初我使用forEach(),但后来改用map()。
目前这是我所在的位置:
let sql = "SELECT invoice FROM subscriptions";
myFunction = () => {
con.query(sql, (err, rows) => {
if (err) throw err;
var newArray = rows.map((row) => {
return row.invoice;
})
console.log(newArray)
})
}
myFunction();
如果我将console.log(newArray) 更改为return newArray,似乎没有任何证据表明这给了我想要的东西。
我也尝试在函数外部定义变量,然后将 newArray 设置为函数外部的变量:
let sql = "SELECT invoice FROM subscriptions";
myArray = []
myFunction = () => {
con.query(sql, (err, rows) => {
if (err) throw err;
var newArray = rows.map((row) => {
return row.invoice;
})
myArray = newArray
})
}
myFunction();
console.log(myArray)
这只会导致[]
在此代码中,rows 从订阅表返回发票编号。结果是:
[ '23480-13',
'23354-14',
'23728-14',
'23614-16',
'16132-14',
... more results ]
所以函数内的console.log 似乎是正确的。但是,如果我尝试返回 newArray,据我所知,该函数不会返回任何内容。
这似乎是一个简单的问题,但我已经被困了好几个小时了。如何创建一个函数来返回一个可以在新函数中使用的数组?
【问题讨论】:
-
大概是
let sql而不是et sql。 -
我想这解决了同样的问题,但我也不知道这是否会回答我的问题,我是否会遇到它。所以我想问题是一样的,我一直在寻找的关于如何解决问题的东西并不是我完全理解的。也就是说,了解那篇文章将有助于向前发展。
标签: javascript mysql node.js