我使用discord.js來製作一個bot;主要功能運行良好,但我有一個循環遍歷一個對象;我從該對象獲取一些信息並將其發送到頻道;問題在於它爲每次迭代發送一條消息,並且它發送得太快;我試過使用setInterval()
,但它不工作;一個更好的解決方案是,如果我可以在發送之前在某處保留該信息;這是我的代碼:在發送之前保留循環信息
var stat = []
var statNames = ['Speed', 'Special Defense', 'Special Attack', 'Defense',
'Attack', 'HP']
for(x in response.stats) {
stat = {"base": response.stats[x].base_stat,
"effort": response.stats[x].effort}
msg.channel.sendMessage(statNames[x] + ": " + stat.base + " - EV: " + stat.effort)
}
如果我把msg.channel.sendMessage
以外的循環;該消息沒有被正確發送並且仍然發送消息1/1;我只是想將它們作爲一條消息發送出去;它運行6次,因此有6條消息發送速度過快,我可能會受此限制。
「在發送之前保留信息」是什麼意思?如果你願意,你可以在'for'循環中輕鬆地創建一個對象數組,但是我不明白你想要的輸出是在這裏。 – jfriend00
@ jfriend00我想說的是,每次循環運行時,都會將消息發送到bot所在的通道;我只是不想獲得速率限制,因爲循環運行並立即發送消息;我說「保留信息」,如「保留消息,直到循環結束,然後將它們作爲1條消息發送」而不是6條單獨的消息。 – Dotdeb