获取结果以用于循环

时间:2015-07-31 04:45:55

标签: javascript angularjs cordova ionic

我有一个函数和一个循环:

var songs = Musics.searchSongs(query).then(function(rs) {
   return rs;
  });
  for (var i = 0; i < songs.length; i++) {
   console.log(songs[i]);
  }

现在我想用执行函数后得到的结果运行循环。我怎么能这样做?

1 个答案:

答案 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);
};