中断后返回瀑布对话框

时间:2019-09-19 19:28:48

标签: node.js botframework interrupt

使用Luis检测到中断后,尝试返回我的瀑布对话框时遇到问题。 例如,我在瀑布中有5个步骤,在步骤3中,路易斯检测到中断并正确回答,但是瀑布返回到步骤4,并且不再询问步骤3。

import java.net.URLDecoder

object Decode {
  def main(args: Array[String]): Unit = {
    val input = "a=1&b=2&c=&a=4";
    println(separate(input))
  }

  def separate(input: String) : Map[String, List[Option[String]]] = {
    case class Parameter(key: String, value: Option[String])

    def separateParameter(parameter: String) : Parameter =
      parameter.split("=")
               .map(e => URLDecoder.decode(e, "UTF-8")) match {
      case Array(key, value) =>  Parameter(key, Some(value))
      case Array(key) => Parameter(key, None)
    }

    input.split("&").toList
      .map(p => separateParameter(p))
      .groupBy(p => p.key)
      .mapValues(vs => vs.map(p => p.value))
  }
}

我如何再次要求步骤3,然后继续瀑布流?

1 个答案:

答案 0 :(得分:0)

您应该能够在case语句中使用return await innerDc.repromptDialog();来重新提示活动对话框的最后一步。我使用的是旧版本,该版本在我的主dispatchBot.js文件中包含中断代码,而不是在单独的cancelAndHelpDialog文件中,但是我认为方法是相同的。