首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hubot多条消息

Hubot多条消息
EN

Stack Overflow用户
提问于 2019-01-03 21:57:56
回答 1查看 436关注 0票数 1

我有以下脚本:

代码语言:javascript
复制
module.exports = (robot) ->

  robot.respond /petsit/i, (res) ->

    user_name = res.envelope.user.name
    res.reply "Starting new petsitting under: @" + user_name + "\n"
    res.send "What is the dog's name? Reply with 'dog `INSERT_DOG_NAME`'"

    robot.respond /dog (.*)/i, (msg) ->
      dog_name = msg.match[1]

      user_dog_name = "" + user_name + dog_name

      if robot.brain.get(user_dog_name)
        msg.send "Petsitting is already in progress for @" + user_name + " Dog: " + dog_name
      else
        robot.brain.set(user_app_name, true)
        msg.send "#{dog_name} " + robot.brain.get(user_app_name)

我搞不懂为什么我打了好几次电话就会收到多条信息?

例如:

代码语言:javascript
复制
@hubot petsit
@hubot dog lucky

@hubot petsit
@hubot dog kenny ---> This will give me multiple messages.

我的想法是,这是异步,第二条消息是由第一方言/对话运行?我如何解决这个问题,使第一次对话不会干扰后续对话?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-10 14:03:39

您将收到多条消息,因为每次调用robot.respond /dog (.*)/i时都会附加robot.respond /petsit/i侦听器。这是您第一次发送petsit/dog (.*)/i侦听器是第一次附加。当您发送狗.时,只会触发一个响应。每次发送时,第二个侦听器将绑定在同一个机器人实例上,从而向您发送多个响应。

默认情况下,Hubot不支持管理会话。相反,您应该看看第三方模块(如大人物-对话 ),它添加了这种功能或实现了您自己的逻辑。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54030373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档