Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Discord.js bot正在加入语音频道,但加入后不会运行剩余的代码_Javascript_Node.js_Discord_Discord.js - Fatal编程技术网

Javascript Discord.js bot正在加入语音频道,但加入后不会运行剩余的代码

Javascript Discord.js bot正在加入语音频道,但加入后不会运行剩余的代码,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我有一个discord机器人,我正试图加入一个语音频道,让它重复一个声音文件,到目前为止,我已经让它加入,但在它加入后,箭头函数中的任何代码都不会运行 let channel = client.channels.cache.get('723620872572895243') channel.join(connection => { console.log("Starting") mp3("speech.mp3", function

我有一个discord机器人,我正试图加入一个语音频道,让它重复一个声音文件,到目前为止,我已经让它加入,但在它加入后,箭头函数中的任何代码都不会运行

let channel = client.channels.cache.get('723620872572895243')

channel.join(connection => {
    console.log("Starting")
    mp3("speech.mp3", function (err, duration) {
        if (err) return console.log(err);
        console.log("File duration:" + duration * 1000 + "ms")
        repeat(connection, duration)
    })
}).catch(console.error)
这是我试图运行的代码,但它加入了通道,并且在运行arrow函数后什么都没有

let channel = client.channels.cache.get('723620872572895243')

channel.join(connection => {
    console.log("Starting")
    mp3("speech.mp3", function (err, duration) {
        if (err) return console.log(err);
        console.log("File duration:" + duration * 1000 + "ms")
        repeat(connection, duration)
    })
}).catch(console.error)
下面是repeat()函数,以备需要

function repeat(connection, duration) {
const dispatcher = connection.play("speech.mp3")
let play = setInterval(function () {
    const dispatcher = connection.play("speech.mp3")
    console.log("Playing")
}, duration * 1000 + 2000)
module.exports.interval = play
}
VoiceChannel#join
不接受任何参数。您没有正确地构造arrow函数,这就是为什么您的代码都不起作用的原因,您需要在
.join()
之后加上
.then()
,如下所示:

let channel=client.channels.cache.get('723620872572895243')
channel.join().then(连接=>{
console.log(“启动”)
mp3(“speech.mp3”,函数(错误,持续时间){
if(err)返回console.log(err);
log(“文件持续时间:“+持续时间*1000+毫秒”)
重复(连接、持续时间)
});
}).catch(console.error)

你可以看到更多关于
VoiceChannel#join
方法的信息

非常感谢,我不敢相信我忽略了这一点,我甚至在文档中查看了VoiceChannel的join方法,完全跳过了.then()