2012-10-19 29 views
1

所有我想要做的就是從音樂庫列表中的文件。我想列出文件的路徑,作者和標題。 Windows 8 JavaScript API提供了整齊的異步功能。我的問題是我無法傳遞一個變量給函數,所以我無法識別回調函數中的文件。這是我到目前爲止有:如何在使用javascript的Windows 8 metro應用程序中獲取mp3文件的文件名和id3標籤?

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>'); 
} 
}); 

正如你所看到的,我可以檢索每一個信息,我不能把它們放在一起,以一個列表項。誰能告訴我這是怎麼完成的?謝謝!

回答

1

您可以使用JavaScript中closure

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]); 
    } 
}); 
+0

它的工作,謝謝!我現在要看看關閉的東西。 –

相關問題