Javascript 在请求之后等待以在JQuery中发送另一个请求

Javascript 在请求之后等待以在JQuery中发送另一个请求,javascript,jquery,ajax,spotify,Javascript,Jquery,Ajax,Spotify,我正在使用SpotifyWebAPI,其想法是在单击下一首歌曲按钮时用歌曲名称更新html 问题是,当我单击按钮时,它确实会更新歌曲,但会更新到播放的最后一首,而不是当前一首 我尝试使用其他方法,例如“success”和“complete”参数,但是当使用“complete”时,它不会更新,“success”上也会发生同样的情况 我是否可以为下一个请求设置“等待”时间 document.getElementById('skip-song').addEventListener('click', f

我正在使用SpotifyWebAPI,其想法是在单击下一首歌曲按钮时用歌曲名称更新html

问题是,当我单击按钮时,它确实会更新歌曲,但会更新到播放的最后一首,而不是当前一首

我尝试使用其他方法,例如“success”和“complete”参数,但是当使用“complete”时,它不会更新,“success”上也会发生同样的情况

我是否可以为下一个请求设置“等待”时间

document.getElementById('skip-song').addEventListener('click', function(){
  $.ajax({
    type: 'POST',
    url:'https://api.spotify.com/v1/me/player/next',
    headers: {'Authorization': "Bearer " + access_token},
    }).done(function(data){
      $.ajax({
        url: 'https://api.spotify.com/v1/me/player/currently-playing',
        headers: {
          'Authorization': 'Bearer ' + access_token
        },
      }).done(function(response){
            currentPlayingPlaceholder.innerHTML = currentPlayingTemplate(response);
    });
  });
}, false);

通过引入超时,您可以在请求当前播放的歌曲之前等待几秒钟。我不知道你应该等多久,感觉有点不舒服。如果跳过函数返回当前正在播放,那就太好了

document.getElementById('previous-song').addEventListener('click',function(){
$.ajax({
键入:“POST”,
网址:'https://api.spotify.com/v1/me/player/previous',
标题:{
“授权”:“承载人”+访问令牌
},
}).完成(功能(数据){
设置超时(
$.ajax({
网址:'https://api.spotify.com/v1/me/player/currently-playing',
标题:{
“授权”:“承载人”+访问令牌
},
}).完成(功能(响应){
currentPlayingPlaceholder.innerHTML=currentPlayingTemplate(响应);
}),3000);//请等待3秒钟,然后更新当前播放的
});

},假)$(“#上一首歌”)。单击(function(){…})
用于事件,
$currentPlayingPlaceholder.html(…)
用于更改html等。确实不清楚是什么问题。在第一个请求完成之前,不会提出第二个请求。但是你对从第一首歌返回的数据不做任何处理你的方法在我看来很好,我注意到的唯一一件事是,你在第二个请求中缺少了
类型:'POST'
,问题是“当我点击下一首歌按钮时”。而代码都是关于“上一首”歌的。这是一个打字错误,还是代码中的逻辑错误?那么,在Spotify API识别当前播放的歌曲发生更改之前,您的第二个请求是否已经发出并得到了响应?