Как вы (или можете) запускать асинхронный код в Intents в JOVO? - PullRequest
0 голосов
/ 29 апреля 2019

Я хочу запустить асинхронную функцию внутри намерения моего JOVO. На данный момент он выполняет код синхронно, что не позволяет JOVO отправлять правильный ответ.

Вот так выглядит мой код.

app.setHandler({
  Intent() {
    var response = 'nada';

    response = FindItem(this.$inputs.Item.value);
    //I want it to be like:
    //response = await FindItem(this.$inputs.Item.value);//Where FindItem is a asynchronous method

    this.ask(response);
  }
});

FindItem() возвращает строку с именем предмета (например, Banana).

Однако, это просто отвечает «нада». Я хочу, чтобы он ответил (ex :) 'banana'

Какие-нибудь решения?

Заранее спасибо!

1 Ответ

0 голосов
/ 02 мая 2019

Простое решение с сайта JOVO

По сути, вы хотите использовать запрос Promises или Promises в методе FindItem, а также использовать async и await в Intent.

app.setHandler({
  **async** Intent() {
    var response = 'nada';

    response = **await** FindItem(this.$inputs.Item.value);
    //I want it to be like:
    //response = await FindItem(this.$inputs.Item.value);//Where FindItem is a asynchronous method

    this.ask(response);
  }
});

FindItem будет выглядеть так:

async Finditem(item) { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...