【发布时间】:2013-02-26 13:33:42
【问题描述】:
更新:新的预览 API 提供了一个简单的解决方案!
好的,我在使用新的 Spotify 预览 api 1.x 时遇到问题。此外,这是一个一般的 javascript/jquery ajax 问题。
我有一个从我的服务器后端获取 json 数组的函数。该数组表示包含音乐曲目(名称、艺术家)的一些推荐。完成后,我想通过 spotify api 搜索这些曲目。
$.when(getCurrentRecommendationList()).done(function(result) {
console.log(result);
matchRecommendations(result, showTracksList);
});
到目前为止一切顺利。我的比赛推荐功能如下所示:
var matchedTracks = [];
for ( var i = 0; i < result.length; i++) {
var searchTerm = result[i].song.artist + " " + result[i].song.name;
var track;
// Search with SPOTIFY API
require([ '$api/search#Search' ], function(Search) {
var search = Search.search(searchTerm);
search.tracks.snapshot(0, 1).done(function(snapshot) {
track = snapshot.get(0);
if (track) {
var rec = new Recommendation(result[i].id, track);
matchedTracks.push(rec);
}
});
});
}
return matchedTracks;
不用担心搜索一切正常。问题是搜索需要一些时间,并且在搜索完成之前返回了我的matchedTracks。
我认为 jquery 的 deferred 将是解决方案,但由于我是 javascript 和 jquery 的新手,我无法真正让它们按照我想要的方式工作,主要是因为循环给我带来了麻烦 ^^。
有解决这个问题的想法吗?
【问题讨论】:
-
你说你使用ajax,你是用它来连接他们的api吗?如果是这样,ajax 调用在哪里。
-
ajax 调用在第一个代码块“getCurrentRecommendationList()”中,但工作正常。 Spotify 搜索本身似乎是异步的。这是我的问题
标签: javascript spotify