【发布时间】:2019-08-11 20:39:13
【问题描述】:
我能够使用 google-spreadsheet 节点模块成功地将一行添加到 google 电子表格,如下所示:
const logToGoogleSpreadsheet = (userName, description, link) => {
const spreadsheetId = 'my-spreadsheet-id'
const doc = new GoogleSpreadsheet(`${spreadsheetId}`)
const clientEmail = 'my-client-email'
const privateKey = 'my-private-key'
const payload = {
client_email: clientEmail,
private_key: privateKey
}
let status = ''
doc.useServiceAccountAuth(payload, function (err) {
doc.addRow(1, { 'Reported By': userName, 'Description': description, 'Screenshot Link': link, 'Status': 'Open' }, function(err) {
if(err) {
console.log(err);
status = 'some error'
} else {
console.log('It worked')
status = 'success'
}
});
})
return status
}
const result = logToGoogleSpreadsheet('username', 'description', 'link')
console.log(`The value of result is ${result}`) //This always shows undefined as the value
结果的值总是'undefined'。我知道这是由于 javascript 的异步特性并且无法修改回调函数中的任何内容,但我无法解决此问题。有人可以告诉我如何从 logToGoogleSpreadsheet 函数返回状态的示例吗?
谢谢
【问题讨论】:
标签: javascript node.js callback google-sheets-api