Javascript 如何返回使用Google Sheets API spreadsheets.values.get读取的值?
我目前正在做一个项目,在这个项目中,我从谷歌表单中提取值。我可以Javascript 如何返回使用Google Sheets API spreadsheets.values.get读取的值?,javascript,node.js,google-sheets-api,Javascript,Node.js,Google Sheets Api,我目前正在做一个项目,在这个项目中,我从谷歌表单中提取值。我可以console.log记录显示我可以访问值的结果。但是,当我尝试将其返回到较大的node.js脚本以在其他函数中进行处理时,当变量应该是字符串数组时,它仍然是未定义的 这是我正在努力解决的代码 function extractValsTest(auth) { const sheets = google.sheets({version: 'v4', auth}); var request = { spreadsheetId:
console.log
记录显示我可以访问值的结果。但是,当我尝试将其返回到较大的node.js脚本以在其他函数中进行处理时,当变量应该是字符串数组时,它仍然是未定义的
这是我正在努力解决的代码
function extractValsTest(auth) {
const sheets = google.sheets({version: 'v4', auth});
var request = {
spreadsheetId: //id,
range: 'A1:B1'
}
var test = new Array();
test = sheets.spreadsheets.values.get(request, function(err, response){
if (err) return err;
test1 = String(response.data.values).split(',');
console.log(test1);
return test1;
});
console.log('Test = ' + test);}
显然,test
的值应该是test1
的值,但是它没有定义,而test1
的控制台.log
输出我在测试中想要的值
我尝试了许多不同的方法来获取sheet函数外部的值,例如返回、重写函数中预先存在的变量,以及将值推送到预先存在的数组
我愿意使用另一个http客户端,但我无法计算出所需的授权。在其他http客户机中完成的任何指向谷歌项目的链接也会有所帮助
任何帮助都将不胜感激。提前感谢。好吧,这不是使用异步函数的正确方法。 函数
spreadsheets.values.get()
不直接返回值,而是使用返回的值调用回调函数。
所以,你应该做一些类似的事情:
sheets.spreadsheets.values.get(request, function(err, response) {
var test = String(response.data.values).split(',');
console.log(test);
// Work with the "response" variable inside this callback
}
由于它是一个异步函数,如果在回调内部计算的内容之外打印,它将无法工作,因为console.log(test)
outside不会等待spreadsheets.values.get()
完成并返回结果。
因此,您必须在回调中添加与
spreadsheets.values.get()
返回值相关的所有内容。。当I console.log测试时,它只返回一个空数组。但是,当我在get命令中打印测试时,需要几秒钟的时间,然后打印结果。@dropTableUsers很抱歉,时间太晚了,我写了一些愚蠢的东西。我编辑了这篇文章。不用担心,这是我们中最好的。你的建议对我很有帮助,使用了新的方法。谢谢你的帮助!