变量未获取分配给它的信息



当我使用此代码时,即使我将其设置为metaDatamusicData也会显示为undefined。另外,我知道metadata里面有信息。

let musicData;
for(i = 0; i < queue.length; i++) {
queueString += i + 1 + ": `" + queue[i] + "`n";
mm.parseFile(config.MUSIC_DIR + queue[i]).then( metadata => {musicData = metadata;});
console.log(musicData);
}

如果您尝试从for循环返回musicData变量,它总是显示未定义。很好地研究了如何从for循环返回数据。if else尝试在for循环中使用musicData变量。

就像

for(i = 0; i < queue.length; i++) 
{
let musicData;
queueString += i + 1 + ": `" + queue[i] + "`n";
mm.parseFile(config.MUSIC_DIR + queue[i]).then( metadata => {musicData = metadata;});
console.log(musicData);
}

尝试。。循环的等待

let musicData;
let index = 0;
(async () => {
for (const element of queue) {
index++;
queueString += index + ": `" + element + "`n";
await mm
.parseFile(config.MUSIC_DIR + element)
.then((metadata) => (musicData = metadata));
console.log(musicData);
}
})();

相关内容