【发布时间】:2019-07-30 18:13:42
【问题描述】:
我正在学习 NodeJS 来做一些自动化脚本,但是我遇到了一个我不知道如何解决的问题。
使用 google 电子表格 API 和“promisify-node”包,我从电子表格请求一些数据,并尝试返回部分数据以用于另一个 js 文件。
文件:电子表格.js
const getProductsConfiguration = async(auth) =>
{
const sheets = google.sheets('v4');
const getValues = promisify(sheets.spreadsheets.values.get);
await getValues({
auth: auth,
spreadsheetId: utils.getSpreadsheedId(config.spreadsheet.configSpreadsheedUrl),
range: `${config.spreadsheet.configTabName}!A8:C1000`,
})
.then(function (response) {
var productsConfiguration = [];
for(var value in response.values)
{
if(response.values[value].length === 0) continue;
var productConfig = {
"productName": response.values[value][0],
"spreadsheetId": response.values[value][1],
"filterId": response.values[value][2]
};
productsConfiguration.push(productConfig);
}
console.log(productsConfiguration);
return productsConfiguration;
})
.catch(function (error){console.log(error); return false;});
};
app.js:
productsConfig = await spreadsheet.getProductsConfiguration(sheetAuth);
console.log(productsConfig);
此 console.log 正在返回“未定义”,但“spreadsheet.js”中的 console.log 正在返回正确的数据。
我能做些什么来解决?谢谢
【问题讨论】:
-
在
getProductsConfiguration末尾尝试const values = await getValues({ ...和return values
标签: javascript arrays node.js promise