我想在JOVO的意图内运行一个异步函数。目前,它正在同步运行代码,这不允许JOVO发送正确的响应。
这就是我的代码。
class CheckboxButton: UIButton {
override var intrinsicContentSize: CGSize {
return titleLabel?.intrinsicContentSize ?? CGSize.zero
}
override func layoutSubviews() {
super.layoutSubviews()
titleLabel?.preferredMaxLayoutWidth = titleLabel?.frame.size.width ?? 0
super.layoutSubviews()
}
}
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);
}
});
返回项目名称的字符串(例如Banana)。
但是,这只是以'nada'开头。我希望它以(例如:)“香蕉”作为响应
有解决方案吗?
谢谢!
答案 0 :(得分:0)
JOVO's website的简便解决方案
基本上,您想在FindItem方法中使用“请求承诺”或“承诺”,并在Intent中使用“ async”和“ await”。
>>> card1 = '9♥'
>>> card2 = '9♠'
>>> card1[0] == card2[0]
True
FindItem看起来像:
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);
}
});