You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js 如何编辑消息后休眠再二次编辑避免更新速度过快

实现方案

你需要先封装一个支持Promise的休眠函数,再在两次编辑之间插入休眠逻辑即可,有两种常用写法:

写法1:和你现有示例一致的Promise链式写法

// 先定义休眠工具函数,参数为等待的毫秒数
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));

message.channel.send("Beep")
  .then(sentMessage => {
    // 第一次编辑
    return sentMessage.edit("Boop!")
      // 等待3秒(可自行调整时长)
      .then(() => sleep(3000))
      // 第二次编辑
      .then(() => sentMessage.edit("第二次编辑后的内容"))
  })
  .catch(err => console.error("操作出错:", err));

写法2:更易读的async/await写法(推荐新手使用)

逻辑更清晰,不容易出现嵌套混乱问题:

const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));

// 注意外层调用的函数需要用async修饰,比如消息事件回调可以写成 async (message) => { ... }
async function editMessageFlow() {
  try {
    // 发送初始消息
    const sentMessage = await message.channel.send("Beep");
    // 第一次编辑
    await sentMessage.edit("Boop!");
    // 休眠3秒,自行调整时长避免编辑过快
    await sleep(3000);
    // 第二次编辑
    await sentMessage.edit("第二次编辑后的内容");
  } catch (err) {
    console.error("操作出错:", err);
  }
}

editMessageFlow();
  • 休眠时长可以根据你的需求调整,一般设置1000ms以上就可以避免常规的编辑速率过快问题
  • 代码中默认添加了错误捕获逻辑,避免接口调用报错导致进程崩溃

内容的提问来源于stack exchange,提问作者Phoenix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 02:45:02