我有问题。我在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);
}
答案 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
}