javascript - 如何从一系列youtube视频链接中获取一系列youtube视频名称?

标签 javascript arrays node.js youtube discord.js

我正在制作一个不和谐的音乐机器人(我在这些问题中已经说了很多遍了),并且我正在专门研究queue命令,到目前为止,我遇到的唯一问题是从音乐队列中已有的YouTube链接数组。我想出的最好的方法来显示类似队列的内容是这样的

var server = servers[message.guild.id];
console.log('QUEUE:')

if(server === undefined || !server.queue[i]){
    message.channel.send("No songs in the queue");
    return;
}
for(let i = 0; i < server.queue.length; i++) {
    YTDL.getInfo(server.queue[i], function(err,info) {
        message.channel.send(info.title)
        console.log(info.title)
    })
}

唯一的问题是,它在发送队列时可能会被打断,而且看起来不太好。如果任何人可以帮助我,将不胜感激

最佳答案

在“The Coding Den”不和谐服务器上有人帮助我。他告诉我的解决方案是异步等待。

var server = servers[message.guild.id];

var queueTitles = []
function queueCheck(queueSpot) {
    return new Promise((resolve, reject) => {
        YTDL.getInfo(server.queue[queueSpot], (err, info) => {
            if (err) reject(err);
            resolve(info);
        });
    });
}
async function queueWait(queueWaitSpot) {
    let info = await queueCheck(queueWaitSpot);
    queueTitles.push(info.title)
}
console.log('QUEUE:')
if(server === undefined) {
    console.log("No songs in the queue");
    messagesend("No songs in the queue");
    return;
}
for(let i = 0; i < server.queue.length; i++) {
        await queueWait(i)
}
if(queueTitles.length === 0) {
    console.log("No songs in the queue")
    messagesend("No songs in the queue");
    return;
}
console.log("```\n" + queueTitles.join('\n') + "\n```");
message.channel.send(queueTitles.join('\n'));

关于javascript - 如何从一系列youtube视频链接中获取一系列youtube视频名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47186151/

相关文章:

javascript - 使用 Java 在样式表中展开全部或全部折叠

javascript Array.splice() 不执行任何操作

node.js - 错误 HH604 : Error running JSON-RPC server: Must be authenticated! Hardhat Node.js Alchemy

node.js - 我应该使用什么编码来在 nodeJS 中正确生成带有加密的 ETag?

javascript - 当类添加调用我的函数或事件时

javascript - 如何在 JavaScript 中使用 PHP?

javascript - 如何创建一个左、中、右各有图标的列表项?

Java:返回两个 "immutable"整数的最佳方式?

arrays - 为什么返回 'error: unbound symbol' 为什么我运行我的数组比较算法?

node.js - NodeJS 请求 : How do I get `response.statusCode` when piping?