Node.js 如何从GoogleSheetsAPI访问回调函数的结果?
我正在使用GoogleSheetsAPI复制一个工作表,我想将新工作表的ID传递到一个变量中 我可以在回调函数中成功地获取工作表ID(使用Node.js 如何从GoogleSheetsAPI访问回调函数的结果?,node.js,asynchronous,google-api,google-sheets-api,Node.js,Asynchronous,Google Api,Google Sheets Api,我正在使用GoogleSheetsAPI复制一个工作表,我想将新工作表的ID传递到一个变量中 我可以在回调函数中成功地获取工作表ID(使用result.data.sheetId),但我很难在函数之外使用它 我使用的是async/await语法,我还尝试了utils.promisify,运气不好 async function copySheet(jwt, apiKey, spreadsheetId, range) { const sheets = google.sheets({ versio
result.data.sheetId
),但我很难在函数之外使用它
我使用的是async
/await
语法,我还尝试了utils.promisify
,运气不好
async function copySheet(jwt, apiKey, spreadsheetId, range) {
const sheets = google.sheets({ version: 'v4' });
let newSheetId = await sheets.spreadsheets.sheets.copyTo({
"spreadsheetId": spreadsheetId,
"sheetId": 0,
"auth": jwt,
"key": apiKey,
"resource": {
"destinationSpreadsheetId": spreadsheetId,
}
}, function (err, result) {
if (err) {
throw err;
}
console.log(result.data.sheetId);
return result.data.sheetId;
});
console.log(newSheetId);
}
第一个console.log
显示我想要的号码,但第二个日志未定义
您有什么建议允许我在回调函数之外使用sheetId吗?这个修改怎么样?请把这看作是几个答案中的一个
修改脚本:
请按如下方式修改您的脚本
发件人:
致:
注:
- 根据您的问题,我可以确认您已经能够使用API
spreadsheets.sheets.copyTo()
使用POST方法。所以在这种情况下,不能使用API密钥。我认为即使删除了key:apiKey
,脚本也能正常工作
参考:
如果这不是你想要的结果,我道歉
let newSheetId = await sheets.spreadsheets.sheets.copyTo({
"spreadsheetId": spreadsheetId,
"sheetId": 0,
"auth": jwt,
"key": apiKey,
"resource": {
"destinationSpreadsheetId": spreadsheetId,
}
}, function (err, result) {
if (err) {
throw err;
}
console.log(result.data.sheetId);
return result.data.sheetId;
});
console.log(newSheetId);
let res = await sheets.spreadsheets.sheets.copyTo({
"spreadsheetId": spreadsheetId,
"sheetId": 0,
"auth": jwt,
"key": apiKey,
"resource": {
"destinationSpreadsheetId": spreadsheetId,
}
});
let newSheetId = res.data.sheetId;
console.log(newSheetId);