【问题标题】:spotify api getting artistsspotify api 获取艺术家
【发布时间】:2020-02-20 15:51:55
【问题描述】:

我正在尝试从过去 20 年的每一年中挑选顶级艺术家。多年来,我通过将当前迭代作为动态值传递给 spotify 端点来循环。这里的代码“x”是艺术家的数组。我需要一个数组中的所有艺术家,但我在不同数组中获得每次迭代的响应。 (检查图片的输出)。我该如何解决这个问题?

const fetch = require("node-fetch")
let { userAccessToken } = require('./spotifyConfig')

async function getArtists() {
        try {
    for (let i = 2000; i < 2020; i++) {
            let data = await fetch(`https://api.spotify.com/v1/search?q=year%3A${i}&type=artist&market=US`, {
                method: "GET",
                headers: {
                    Authorization: `Bearer ${userAccessToken}`
                }
            })
            let actualData = await data.json()
            var allItems = actualData.artists.items
           var x = allItems.map(item => {
                var everyOne = item.name
                return everyOne
            })
           console.log(x)
        } 
    } catch (e) { console.log (e) }
}



getArtists()

【问题讨论】:

  • 欢迎来到 StackOverflow!请将您的完整或部分 json 文件合并到您的帖子中,以便人们可以在单个页面中看到代码和数据。

标签: node.js spotify


【解决方案1】:

输入在每次迭代中都是不同的,所以从逻辑上讲,获得不同的响应是正确的,是在谈论响应结构吗??

【讨论】:

    【解决方案2】:

    我认为问题在于您没有在循环之外捕获数据,因此每次迭代时都会重置值。您需要声明一个结果数组来存储每个迭代并在最后返回它。

    const fetch = require("node-fetch")
    let { userAccessToken } = require('./spotifyConfig')
    
    async function getArtists() {
        const result = []
            try {
                for (let i = 2000; i < 2020; i++) {
                        let data = await fetch(`https://api.spotify.com/v1/search?q=year%3A${i}&type=artist&market=US`, {
                            method: "GET",
                            headers: {
                                Authorization: `Bearer ${userAccessToken}`
                            }
                        })
                        let actualData = await data.json()
                        var allItems = actualData.artists.items
                    var x = allItems.map(item => {
                            var everyOne = item.name
                            return everyOne
                        })
                result.push(x)
                } 
                return result.flat()
            } catch (e) { console.log (e) }
    }
    getArtists()
    

    【讨论】:

      猜你喜欢
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多