javascript - 每当使用使用响应对象的 API 时,始终出现“未定义响应”错误
问题描述
我正在使用 Steam 开发者 API 创建 Discord Bot。我正在使用 ISteamUser 的 ResolveVanityURL 调用,它调用正确。但是,当我尝试在我的代码中使用它时,它总是指出“未定义响应”。调用的输出非常简单,如下所示:
我的代码片段如下:
let { vanityURL } = superagent
.get(`http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=${stApiKey}&vanityurl=${args[0]}`);
console.log(vanityURL.response.steamid)
本质上,我使用我的 Discord 机器人的参数调用 API,以从 Vanity URL 获取 Steam ID。它调用时没有错误,但是当我如上所示尝试 console.log 时,它给了我这个错误:(node:14580) UnhandledPromiseRejectionWarning: ReferenceError: response is not defined
。
我怎样才能做到这一点,所以这个错误不会继续?谢谢。
解决方案
首先superagent.get()
是异步的,所以如果你想直接为响应分配一个变量,你需要添加等待。使用您当前的代码,它试图vanityURL
从一个明显未定义的承诺中解构
let { vanityURL } = await superagent.get(`http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=${stApiKey}&vanityurl=${args[0]}`);
其次,vanityURL 是从哪里来的?它是通话的另一个属性吗?无论哪种方式,您的 steamid 都在响应属性内,因此您需要解构它:
let { response, vanityURL } = await superagent.get(`http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=${stApiKey}&vanityurl=${args[0]}`);
之后,您可以调用.steamid
响应:
console.log(response.steamid);
推荐阅读
- composer-php - 如何修复“https://repo.packagist.org/packages.json 不包含有效的 Json”?
- javascript - 如何在 Laravel 中使用 Ajax 调用基于其他下拉菜单添加下拉菜单?
- powershell - 错误后powershell脚本无法继续。已经在代码中无声地继续
- ionic-framework - 有没有办法使用来自 Snapkit 登录 Web api 的访问令牌获取用户 Bitmoji?
- firebase-hosting - Firebase 托管 - 如何将域重定向到 url(.pl 到 .com/pl)
- typescript - SyntaxError:意外的令牌,预期的“;” 使用 Prettier 的 .css 文件
- javascript - 如何在 Tensorflow.js 中计算拉普拉斯算子?
- python - 加速 Pandas - 加快在整列中将 unix 时间戳更改为日期
- elasticsearch - ELK 堆栈配置警报电子邮件
- python - 试图将数据插入 SQL 数据库。错误 1046 未选择数据库