如何使用setTimeout实现Discord机器人响应延迟及自定义正在输入状态
实现方案
你需要结合Discord.js内置的正在输入触发方法和setTimeout定时器完成需求,修改后的代码如下:
client.on('messageCreate', async (Message) => { if (Message.content.includes("I don't know")) { // 触发「正在输入」状态,会自动显示你设置的机器人名称 await Message.channel.sendTyping() // 自定义延迟时长,单位为毫秒,3000即延迟3秒后回复 setTimeout(() => { Message.reply({ content: "Do we need to go over the mechanics again?" }) }, 3000) } })
补充说明
- 可自行调整setTimeout的第二个参数修改延迟时长,1000毫秒对应1秒
sendTyping()触发的正在输入状态默认最长持续10秒,如果你设置的延迟超过10秒,需要在延迟中途再次调用Message.channel.sendTyping()刷新状态
内容的提问来源于stack exchange,提问作者Wick
相关产品推荐
相关产品推荐

