Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Spotify Web API-以最快/最轻的方式获取所有请求项,且有限制_Javascript_Angularjs_Spotify - Fatal编程技术网

Javascript Spotify Web API-以最快/最轻的方式获取所有请求项,且有限制

Javascript Spotify Web API-以最快/最轻的方式获取所有请求项,且有限制,javascript,angularjs,spotify,Javascript,Angularjs,Spotify,此时,我正在尝试获取播放列表中的所有曲目(或来自用户的所有播放列表)。Spotify Web API不允许一次从一个播放列表中获取超过100首曲目(对于其他场景,则为50首播放列表)。Spotify Web API的数据包含播放列表中的曲目总数。此时,我正在使用while循环获取所有轨迹,但速度惊人地慢 所以我在想,也许有人能帮我加快速度 我目前拥有的while循环如下: let currentOffset = 50; while(playlists.total > currentOffs

此时,我正在尝试获取播放列表中的所有曲目(或来自用户的所有播放列表)。Spotify Web API不允许一次从一个播放列表中获取超过100首曲目(对于其他场景,则为50首播放列表)。Spotify Web API的数据包含播放列表中的曲目总数。此时,我正在使用while循环获取所有轨迹,但速度惊人地慢

所以我在想,也许有人能帮我加快速度

我目前拥有的while循环如下:

let currentOffset = 50;
while(playlists.total > currentOffset) {
    $http.get(`https://api.spotify.com/v1/me/playlists?limit=50&offset=${currentOffset}`, {
        headers: {
            Authorization: `Bearer ${$rootScope.accessToken}`,
            Accept: 'application/json'
        }
    }).then((response) => {
        response.data.items.forEach(function (playlistItem) {
            if (playlistItem.owner.id == user.data.id || playlistItem.collaborative) {
                $scope.tempUserPlaylists.push(playlistItem);
            }
        });
        if((response.data.offset + response.data.limit) >= response.data.total) {
            $scope.userPlaylists = $scope.tempUserPlaylists;
            $timeout(() => {
                const playListContainer = $(".playlist-container");
                playListContainer.offset();
                playListContainer.css({
                    display: "initial",
                    transform: "scaleY(1)"
                });
            }, 0);
        }
    }, (error) => {
        console.log(error);
    });
    currentOffset+=50;
}
另外,我在
$(“.playlist container”)
上有一个动画,但动画非常滞后,我想这是因为while循环很慢,但我不确定


提前感谢所有帮助我的人

当你可以异步的时候,为什么要同步呢?好问题,哈哈