1

我想做的就是列出音乐库中的文件。我想列出文件的路径、作者和标题。Windows 8 Javascript API 提供了简洁的异步函数。我的问题是我无法将变量传递给函数,因此我无法识别回调函数中的文件。这是我到目前为止所拥有的:

var musicLibrary = Windows.Storage.KnownFolders.musicLibrary;
musicLibrary.getFilesAsync().then(function (resultLibrary) {
 for (var i = 0; i < resultLibrary.length; i++) {
  var path = resultLibrary[i].path;
  resultLibrary[i].properties.getMusicPropertiesAsync().then(function (musicProperties) {
  $("#list").append('<li>'+ musicProperties.artist + ', ' + musicProperties.title + '</li>');
}
});

如您所见,我可以检索所有信息,但不能将它们放在一个列表项中。谁能告诉我这是怎么做到的?谢谢!

4

1 回答 1

1

您可以在 javascript中使用闭包:

var musicLibrary = Windows.Storage.KnownFolders.musicLibrary;
musicLibrary.getFilesAsync().then(function (resultLibrary) {

    for (var i = 0; i < resultLibrary.length; i++) {
    (function(song){
        var path = song.path;
        song.properties.getMusicPropertiesAsync().done(function (musicProperties) {
            $("#list").append('<li>' + song.path + musicProperties.artist + ', ' + musicProperties.title + '</li>');
        })
    })(resultLibrary[i]);
    }
});
于 2012-10-20T02:26:04.860 回答