我有一个函数和一个循环:
var songs = Musics.searchSongs(query).then(function(rs) {
return rs;
});
for (var i = 0; i < songs.length; i++) {
console.log(songs[i]);
}
现在我想用执行函数后得到的结果运行循环。我怎么能这样做?
答案 0 :(得分:1)
您无法从异步调用返回。但是,您可以将回调函数传递给异步调用,并将调用结果传递给该回调函数。
因此,在您的情况下,您可以创建一个接收歌曲数组的函数,并循环播放每首歌曲,并将每个歌曲记录到控制台。然后,您将该函数作为参数传递给异步调用。
function callback(songs) {
for (var i = 0; i < songs.length; i++) {
console.log(songs[i]);
}
};
Musics.searchSongs(query, callback).then(function(rs) {
callback(rs);
};