React.js:在 API 响应中访问 Retry-After header
React.js: Accessing the Retry-After header in an API response
我是一名新程序员,使用 React.js 和 Spotify API 作为音乐应用程序。我正在尝试访问 429 rate-limiting 错误响应中的 Retry-After header (Spotify docs here). This is my code currently, which I loosely copied from this article.
async getArtistArt (artistID) {
let url = `https://api.spotify.com/v1/artists?ids=${artistID}`
let response = await fetch(url, {
headers: {
'Authorization': 'Bearer ' + localStorage.getItem('accessToken')
},
});
let data = await response.json();
if (Object.keys(data)[0] === "error" && data.error.status === 429) { // Handle rate limiting
console.log('Error!');
console.log(data);
for (var pair of data.headers.entries()) {
console.log(pair);
console.log(pair[0]);
}
}
return data;
}
这是我在控制台中看到的:
- screenshot here
- console.log('Error!'); // 日志 'Error!'
- console.log(数据); // 记录错误 object,但不记录 header
- console.log(pair) // 错误提示'Uncaught (in promise) TypeError: Cannot read 属性 'entries' of undefined'
我试过不将响应放入 json,但这似乎没有效果。
我已尝试避免 try/catch 错误陈述,因为我听说它们有些过时且通常不被推荐,但我需要它们来访问响应 header 吗?
如有任何建议,我将不胜感激。非常感谢您!
我想我找到了你的错误所在。该代码几乎是正确的,除了您要检查响应的 json
中的 headers。
尝试做 for (var pair of response.headers.entries()) {...}
,这样您就可以获取响应而不是它的 json
内容。
我是一名新程序员,使用 React.js 和 Spotify API 作为音乐应用程序。我正在尝试访问 429 rate-limiting 错误响应中的 Retry-After header (Spotify docs here). This is my code currently, which I loosely copied from this article.
async getArtistArt (artistID) {
let url = `https://api.spotify.com/v1/artists?ids=${artistID}`
let response = await fetch(url, {
headers: {
'Authorization': 'Bearer ' + localStorage.getItem('accessToken')
},
});
let data = await response.json();
if (Object.keys(data)[0] === "error" && data.error.status === 429) { // Handle rate limiting
console.log('Error!');
console.log(data);
for (var pair of data.headers.entries()) {
console.log(pair);
console.log(pair[0]);
}
}
return data;
}
这是我在控制台中看到的:
- screenshot here
- console.log('Error!'); // 日志 'Error!'
- console.log(数据); // 记录错误 object,但不记录 header
- console.log(pair) // 错误提示'Uncaught (in promise) TypeError: Cannot read 属性 'entries' of undefined'
我试过不将响应放入 json,但这似乎没有效果。
我已尝试避免 try/catch 错误陈述,因为我听说它们有些过时且通常不被推荐,但我需要它们来访问响应 header 吗?
如有任何建议,我将不胜感激。非常感谢您!
我想我找到了你的错误所在。该代码几乎是正确的,除了您要检查响应的 json
中的 headers。
尝试做 for (var pair of response.headers.entries()) {...}
,这样您就可以获取响应而不是它的 json
内容。