You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中使用Axios调用Zoom API如何等待响应?

问题描述与解决

我查阅了大量相关解答,但多数都和用Axios获取Zoom数据无关,完全没用!我想要通过Axios同步调用Zoom API,也就是等Zoom API返回响应后再继续执行后续代码。我写了主文件test-v02b.js和导出模块zoom-v2b.js,运行node test-v02b.js能成功拿到数据,但数据总是在“执行完成”的提示之后才返回。我已经在导出模块里加了async/await尝试解决,但没效果。

更新:按照Edward的建议,把顶层语句封装成伪main函数后,await终于正常工作了。

相关代码

主文件 test-v02b.js

const zoom = require('./zoom-v2b');
const token = zoom.jwtRefresh();

const axios = require('axios');

const options = {
  method: 'get',
  headers: {
    'Authorization': 'Bearer '+token,
    'User-Agent': 'Zoom-api-Jwt-Request',
    'content-type': 'application/json'
  }
};

// edit
(async function() { // added line
  console.log(`OPTIONS;${JSON.stringify(options.headers, null, 2)}`);

  const data = await zoom.zAXIOSv2(options); // added await
  console.log('Data'+data);

  console.log("Fetch Completed");
})(); // added line

导出模块 zoom-v2b.js

// import for jwtRefresh
const jwt = require('jsonwebtoken');
const config = require('./config');

// import for zAXIOS
const axios = require('axios');

// Use the ApiKey and APISecret from config.js
function jwtRefresh() {
    const payload = { iss: config.APIKey, exp: ((new Date()).getTime() + 5000) };
    const token = jwt.sign(payload, config.APISecret);
    
    console.log(`JWT_TOKEN; ${token}`);

    return token;
}

module.exports = {
  jwtRefresh,
  zAXIOSv2: async (options) => {
    let response;
    const uriStr = 'https://api.zoom.us/v2/users/' + config.OWNER ;
    options.url = uriStr;

    try {
      response = await axios(options);
      console.log('Success;', response.data.user_created_at);
    }
    catch (err) {
      console.log('Error;', response.status);
    }
    return response.data ? response.data : response.status;
  }
};

内容的提问来源于stack exchange,提问作者chris-j

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:40:00