gpt4 book ai didi

javascript - 如何返回使用 Google Sheets API spreadsheets.values.get 读取的值?

转载 作者:搜寻专家 更新时间:2023-10-31 23:50:43 24 4
gpt4 key购买 nike

我目前正在从事一个从 Google 表格中提取值的项目。我能够 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的值,但是它是undefined,而console.logtest1 输出我想要在测试中的值。

我尝试了很多不同的方法来获取工作表函数之外的值,例如返回、覆盖函数中预先存在的变量,以及将值推送到预先存在的数组中。

我愿意使用另一个 http 客户端,但我无法计算出所需的授权。在其他 http 客户端中完成的任何指向 Google 项目的链接也会有所帮助。

如有任何帮助,我们将不胜感激。提前致谢。

最佳答案

嗯,这不是使用异步函数的正确方法。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) 不会等待 spreadsheets.values.get() 完成并返回结果。因此,您必须在回调中添加与 spreadsheets.values.get() 的返回值相关的所有内容。

关于javascript - 如何返回使用 Google Sheets API spreadsheets.values.get 读取的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50457709/

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