【问题标题】:How do I access the result of a callback function from Google Sheets API?如何从 Google Sheets API 访问回调函数的结果?
【发布时间】:2019-05-27 10:59:11
【问题描述】:

我正在使用 Google Sheets API 复制工作表,我想将新工作表的 ID 传递给变量。

我可以在回调函数中成功获取工作表 ID(使用 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 显示我想要的数字,但第二个记录undefined

你有什么建议可以让我在回调函数之外使用 sheetId 吗?

【问题讨论】:

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


    【解决方案1】:

    这个修改怎么样?请认为这只是几个答案之一。

    修改后的脚本:

    请按如下方式修改您的脚本。

    发件人:

    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);
    

    注意:

    • 根据您的问题,我可以确认您已经能够使用 Sheets API。
    • spreadsheets.sheets.copyTo() 使用 POST 方法。所以在这种情况下,不能使用 API 密钥。我认为即使 key: apiKey 被删除,脚本仍然有效。

    参考:

    如果这不是您想要的结果,我深表歉意。

    【讨论】:

      猜你喜欢
      • 2023-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      相关资源
      最近更新 更多