【问题标题】:UnhandledPromiseRejectionWarning: Error: No video id foundUnhandledPromiseRejectionWarning:错误:未找到视频 ID
【发布时间】:2019-06-09 08:20:04
【问题描述】:

正如标题所说,UnhandledPromiseRejectionWarning: Error: No video id found 是我发送命令后在控制台上显示的内容:!join {link}UnhandledPromiseRejectionWarning: Unhandled promise rejection 也出现了。

const commando = require('discord.js-commando'); const YTDL = require('ytdl-core');

function Play(connection, message) {
    var server = servers[message.guild.id];
    server.dispatcher = connection.playStream(YTDL(server.queue[0], {filter: "audioonly"}));
    server.queue.shift();
    server.dispatcher.on("end", function()
    {
        if(server.queue[0])
        {
            Play(connection,message);
        }
        else
        {
            connection.disconnect();
        }
    }); }

class JoinChannelCommand extends commando.Command {
    constructor(client)
    {
        super(client,{
            name: 'join',
            group: 'music',
            memberName: 'join',
            description: 'Join the voice channel'
        });
    }

    async run(message, args)
    {
        if(message.member.voiceChannel)
        {
            if(!message.guild.voiceConnection)
            {
                if(!servers[message.guild.id])
                {
                    servers[message.guild.id] = {queue: []}
                }
                message.member.voiceChannel.join()
                    .then(connection =>{
                        var server = servers[message.guild.id];
                        message.reply("Succesfully Joined!");
                        server.queue.push(args);
                        Play(connection, message);
                    })
            }
        }
        else
        {
            message.reply("You need to be in a voice channel to invite me Baka!")
        }
    }

}

module.exports = JoinChannelCommand;

【问题讨论】:

    标签: javascript discord.js commando


    【解决方案1】:

    当你的承诺被拒绝并且你没有捕捉到它产生的错误时,就会发生未处理的 Promiserejection。要获得您想要处理的错误,您可以在.then 语句之后放置一个.catch 语句。例如:

                message.member.voiceChannel.join()
                    .then(connection =>{
                        var server = servers[message.guild.id];
                        message.reply("Succesfully Joined!");
                        server.queue.push(args);
                        Play(connection, message);
                    }).catch(e => { console.log(e) });
    

    也许这会帮助您处理错误。

    【讨论】:

    • 如果您将我的答案投票为解决方案会很好,这样其他用户就可以看到解决方案是什么,而无需查找 cmets
    猜你喜欢
    • 2021-08-02
    • 1970-01-01
    • 2018-10-22
    • 2021-12-10
    • 2021-04-17
    • 2021-08-03
    • 2019-03-31
    • 1970-01-01
    • 2019-11-02
    相关资源
    最近更新 更多