如何在 ajax 请求/this.setStates 的 for 循环之后调用函数?

我在 for 循环中发出多个 ajax 请求,并在每个 ajax 请求中发出 this.setState({bla bla}) 。如何仅在 last this.setState 完成后才运行回调函数,而不是每个?

getallSongsFromPlaylists(token,playlists) {
    for (let i = 0; i < playlists.length; i++) {
   //console.log(id);
      $.ajax({
        url: "https://api.spotify.com/v1/playlists/"+playlists[i]+"/tracks",async: true,type: "GET",beforeSend: xhr => {
          xhr.setRequestHeader("Authorization","Bearer " + token);
        },error: error => {
          console.log(error);
        },success: data => {
          // Checks if the data is not empty
          if(!data) {
            this.setState({
              no_data: true,});
            return;
          }

          var songs = this.state.songs; 
          for (var i = 0; i < data.items.length; i++) {
            songs.add(data.items[i].track.name);
          }
        
  
        }
      });
    }
//I WANT A FUNCTION HERE THAT WILL ONLY RUN AFTER ALL THE AJAX CALLS ARE DONE 
}
qipaoshaonian 回答:如何在 ajax 请求/this.setStates 的 for 循环之后调用函数?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1139.html

大家都在问