botpress — увеличить vlaue

#javascript #increment #botpress

#javascript #увеличить #botpress

Вопрос:

Я пытаюсь запустить пользовательское действие, чтобы просто увеличить значение при передаче определенного узла в потоке.

Мои пользовательские действия выглядят так:

 function action(bp: typeof sdk, event: sdk.IO.IncomingEvent, args: any, { user, temp, session } = event.state) {
  /** Your code starts below */

  let i = undefined

  const p = new Promise((resolve, reject) => {
    if (i === undefined) {
      resolve((i = 0))
    } else if (i >= 0) {
      resolve(i   1)
    } else {
      reject('i cannot be < 0')
    }
  })

  const runCount = async () => {
    try {
      const counter = await p
      i = counter
      return (session.count = counter)
    } catch (err) {
      console.log(err)
    }
  }

  return runCount()

  /** Your code ends here */
} 

Когда я использую переменную runCount(), для меня будет установлено значение 0. Но затем, после повторного запуска runCount(), он больше не увеличивается.

Что мне нужно сделать, чтобы сохранить переменную, чтобы она увеличивалась при каждом вызове runCount() .

Приветствую, Лоренц

Ответ №1:

Мне только что удалось решить эту проблему.

Я должен был объявить i = session.count в начале.

Теперь он извлекает значение из состояния сеанса и увеличивает состояние при каждом вызове.

Может быть, кому-то это поможет.

Лоренц