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

这是我在控制台中看到的:

我试过不将响应放入 json,但这似乎没有效果。

我已尝试避免 try/catch 错误陈述,因为我听说它们有些过时且通常不被推荐,但我需要它们来访问响应 header 吗?

如有任何建议,我将不胜感激。非常感谢您!

我想我找到了你的错误所在。该代码几乎是正确的,除了您要检查响应的 json 中的 headers。

尝试做 for (var pair of response.headers.entries()) {...},这样您就可以获取响应而不是它的 json 内容。