如何为批量发送消息的JS代码添加5秒间隔的循环逻辑?
实现每隔5秒向不同号码发送消息的修改方案
完整修改代码
const send_message = ["34123456789","34123456789","34123456789"]; // 自定义sleep函数,实现指定毫秒数的延迟 const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); client.on("ready", async () => { console.log("Client is ready!"); // 采用for...of循环实现顺序异步处理 for (const value of send_message) { const chatId = value + "@c.us"; const message = 'This is a test message'; // 等待消息发送完成 await client.sendMessage(chatId, message); // 发送后等待5秒,再处理下一个号码 await sleep(5000); } });
关键修改说明
- 添加sleep函数:JavaScript没有内置延迟函数,通过Promise封装setTimeout实现,用于控制发送间隔。
- 将回调改为async函数:
await关键字只能在async函数内使用,因此需要把ready事件的回调标记为async。 - 替换map为for...of循环:
map会批量执行所有回调,无法等待异步操作完成。for...of配合await可以实现逐个处理,确保每个消息发送完成并等待5秒后,再处理下一个号码。 - 插入await sleep(5000):放在消息发送代码之后,保证每条消息发送完成后,间隔5秒再发送下一条。如果需要在发送第一条前也等待,可将该行移到
client.sendMessage之前。
内容的提问来源于stack exchange,提问作者Guif If
相关产品推荐
相关产品推荐

