node.js sheets.spreadsheets.values.get在变量中赋值

时间:2017-08-22 22:21:53

标签: node.js google-sheets google-api

我有问题。我在arrayName中分配了一个结果。 在第一个console.log中它不是空的,但在第二个控制台日志中,它是未定义的。

function getData(auth) {
  var sheets = google.sheets('v4');
  var arrayName= [];
  sheets.spreadsheets.values.get({
    auth: auth,
    spreadsheetId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
    range: 'b2:b99', 
  }, (err, response) => {
    var rows = response.values;
    if (rows.length != 0) {
      for (var i = 0; i < rows.length; i++) {
        var row = rows[i];
        arrayName.push(row[0]);
        }
       console.log(arrayName);
     }
  });
  console.log(arrayName);
}

1 个答案:

答案 0 :(得分:0)

答案

您的第二个console.log()超出了范围。在输入sheets.spreadsheet.values.get()函数之前设置一个空变量,这样你就可以在函数外面 了。

实施例

试试这个:

function getData(auth) {

  var log = "";                //<---- Create an empty variable

  var sheets = google.sheets('v4');
  var arrayName= [];
  sheets.spreadsheets.values.get({
    auth: auth,
    spreadsheetId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
    range: 'b2:b99', 
  }, (err, response) => {
    var rows = response.values;
    if (rows.length != 0) {
      for (var i = 0; i < rows.length; i++) {
        var row = rows[i];
        arrayName.push(row[0]);
        }
       log = arrayName;         //<---- Store your value within the function
       console.log(arrayName);
     }
  });
  console.log(log);            //<---- Recall the value outside the function
}