javascript - 如何传回数组

标签 javascript node.js google-sheets-api

我试图将名为“sheetsArray”的数组从下面的代码中传递出来,以便我可以将它用于某些任务。尽管尝试了很多事情并在谷歌上搜索了几个小时,但我一生都无法弄清楚如何做到这一点。我确信这很容易,但我什至不确定我应该搜索什么,但我没有搜索。

var sheetsArrayOut = sheets.spreadsheets.get({
  auth: googleauth,
  spreadsheetId: outputDOCID,
}, function(err,response) {
  if (err) {
    console.log('ERROR:' + err);
    return
  }
  var sheets = response.sheets;

  if (sheets.length == 0) {
    console.log('No data found.');
  } else {
      var sheetsArray = [];
      for (i = 0; i < sheets.length; i++) {
        sheetsArray.push(sheets[i].properties.title);
      }
  }
  console.log(sheetsArray[4]);  // this returns the sheet name
  return sheetsArray;
});

console.log(sheetsArrayOut[4]); // this returns undefined

最佳答案

它返回未定义,因为我怀疑该函数是异步的。在这种情况下,您可能可以使用回调来达到良好的效果:

function getData(function (sheetsArray) {
  // do things with sheetsArray
});

function getData(callback) {
  sheets.spreadsheets.get({
    auth: googleauth,
    spreadsheetId: outputDOCID,
  }, function(err,response) {
    // do a bunch of things
    callback(sheetsArray);
  });
}

关于javascript - 如何传回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47948190/

相关文章:

javascript - 选项卡内容未按预期工作

php - Nodejs连接数据库出错

javascript - 如何在函数内部使用回调函数?

node.js - 查询 Sequelize 相关模型

java - 如何使用 Android Google Spreadsheet API 创建列表范围验证

javascript - jQuery 数据表列搜索

javascript - 在页面向下滚动时创建固定位置的文本,然后停止在某个位置

javascript - 动态照亮每个列表项子项的背景

google-apps-script - 如何使用Sheets API在最后一列之后插入列?

python - 如何使用 google-auth 实例化 Google API 服务?