ボットに「入力中...」と表示させたい
channel.sendTyping()
を使用する
v12以前の
startTyping
とは異なり一度しか動作しない
message.channel.startTyping()
で入力開始、 message.channel.stopTyping()
で入力停止
止めるまでずっと続いて、止めたあとも数秒間続くことがある
startTyping()
は
Promise が返るけど、
stopTyping()
は
void
なので注意しよう。
この後に msg.reply('~')
などを入れたい時は setTimeout()
内に入れよう。
jsmessage.channel.startTyping()
setTimeout(() => {
message.channel.stopTyping()
// message.reply('Hey!')
}, 1000)
jsconst sleep = time => new Promise(resolve => setTimeout(resolve, time))
client.on('message', async message => {
message.channel.startTyping()
await sleep(1000)
message.channel.stopTyping()
message.reply('Hey!')
})
注意
startTyping()
に await
を付けたりすると永遠に入力中になってしまう。