首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何返回使用Google spreadsheets.values.get读取的值?

如何返回使用Google spreadsheets.values.get读取的值?
EN

Stack Overflow用户
提问于 2018-05-21 23:14:27
回答 1查看 6.7K关注 0票数 4

目前,我正在进行一个项目,在该项目中,我从Google工作表中提取值。我能够console.log的结果,这表明我可以访问这些值。但是,当我尝试将它返回到更大的node.js脚本以便在其他函数中处理时,当它应该是一个字符串数组时,变量仍然是未定义的。

这是我一直在挣扎的代码。

代码语言:javascript
复制
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的值,但是它是未定义的,而console.log of test1输出了我在测试中想要的值。

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

我可以使用另一个http客户端,但我无法得到所需的授权。任何在其他http客户端完成的谷歌项目的链接也会有所帮助。

任何帮助都将不胜感激。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-21 23:58:29

嗯,这不是使用异步函数的正确方式。函数spreadsheets.values.get()不直接返回值,而是用返回的值调用回调函数。所以,你应该做这样的事情:

代码语言:javascript
复制
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()返回值相关的所有内容。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50457709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档