有没有办法让机器人在继续代码之前等待一段时间(例如 5 秒)?我需要类似的东西:
Is there any way to make a bot wait for some time (for example 5 seconds) before continuing the code? I need something like:
client.on('messageCreate', message => {
message.channel.send('1st message')
wait(5000)
message.channel.send('2nd message')
wait(5000)
message.channel.send('3rd message')
})
我尝试使用 setInterval,就像许多人建议的那样,但这似乎不是我的解决方案.我也不能使用 await setTimeout(time) 因为 SyntaxError: await 仅在异步函数和模块的顶层主体中有效 和 TypeError [ERR_INVALID_CALLBACK]:回调必须是一个函数.收到5000
I tried using setInterval, like many people suggest, but that doesn't seem to be a solution for me.
Also I can't use await setTimeout(time) because of SyntaxError: await is only valid in async functions and the top level bodies of modules and TypeError [ERR_INVALID_CALLBACK]: Callback must be a function. Received 5000
你可以promisify setTimeout 与 Node 的 Util 库.然后使 messageCreate 回调异步.
You can promisify setTimeout with Node's Util library. Then make the messageCreate callback asynchronous.
const wait = require('util').promisify(setTimeout);
client.on('messageCreate', async message => {
message.channel.send('1st message')
await wait(5000)
message.channel.send('2nd message')
await wait(5000)
message.channel.send('3rd message')
})
这篇关于在继续代码之前让机器人等待一段时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
discord.js v12:我如何等待 DM 频道中的消息?discord.js v12: How do I await for messages in a DM channel?(discord.js v12:我如何等待 DM 频道中的消息?)
如何让我的机器人提及发出该机器人命令的人how to make my bot mention the person who gave that bot command(如何让我的机器人提及发出该机器人命令的人)
如何修复必须使用导入来加载 ES 模块 discord.jsHow to fix Must use import to load ES Module discord.js(如何修复必须使用导入来加载 ES 模块 discord.js)
如何列出来自特定服务器的所有成员?How to list all members from a specific server?(如何列出来自特定服务器的所有成员?)
Discord bot:修复“找不到 FFMPEG"Discord bot: Fix ‘FFMPEG not found’(Discord bot:修复“找不到 FFMPEG)
使用 discord.js 加入 discord 服务器时的欢迎消息Welcome message when joining discord Server using discord.js(使用 discord.js 加入 discord 服务器时的欢迎消息)