当我使用此代码时,即使我将其设置为metaData
,musicData
也会显示为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);
}
})();