0

我想在我的 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)。

然而,这只是回应'nada'。我希望它以(例如:)“香蕉”作为回应

有什么解决办法吗?

提前致谢!

4

1 回答 1

0

JOVO网站上的简单解决方案

基本上,您想在 FindItem 方法中使用 Request Promises 或 Promises,并在 Intent 中使用“async”和“await”。

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) { ... }
于 2019-05-02T12:43:30.403 回答