你如何(或你能)运行 九丰 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'
回应
有什么解决办法吗?
提前致谢!
的简单解决方案
基本上,您想在 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) { ... }
我想 运行 我的 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'
回应有什么解决办法吗?
提前致谢!
基本上,您想在 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) { ... }