你如何(或你能)运行 九丰 Intents 中的异步代码?

How do you (or can you) run asynchronous code in JOVO's Intents?

我想 运行 我的 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() returns 项目名称的字符串(如 Banana)。

然而,这只是响应'nada'。我希望它以 (ex:) 'banana'

回应

有什么解决办法吗?

提前致谢!

来自JOVO's website

的简单解决方案

基本上,您想在 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) { ... }