我正在尝试创建一个测试机器人,通过聊天来响应从JSON对象通过另一个API获取的(无意义的)字符串
代码:
<tr *ngFor...>
...
<mat-form-field>
<input matInput [matDatepicker]="pick" placeholder="date" formControlName="date">
<mat-datepicker-toggle matSuffix [for]="pick"></mat-datepicker-toggle>
<mat-datepicker #pick></mat-datepicker>
</mat-form-field>
问题是bot var不是异步函数,所以我不能等待它。如果我删除await,则bot会回复Object Promise。我总体上对JS缺乏经验,所以我可以得到任何指示吗?
e:请求部分工作得很好,我已经在不同的js程序中单独测试了
答案 0 :(得分:2)
你试过这个吗?如果您使用的是与ES6兼容的节点环境,那么这应该可以正常工作
var bot = new builder.UniversalBot(connector, async function (session) {
// Use JSON.stringify() if MyRequest Promise will resolve a object
var text = await MyRequest()
session.send("%s", text);
});
答案 1 :(得分:1)
如果async/await
不可能,那么退回承诺怎么样?如下所示:
function MyRequest() {
var options = {
uri: "https://jsonplaceholder.typicode.com/posts/1",
method: "GET",
json: true
}
return request(options);
}
并使用Promise.then
对结果采取行动,如下所示:
var bot = new builder.UniversalBot(connector, function (session) {
MyRequest().then(function(text) {
session.send("%s", text);
}).catch(function(error) {
session.send("%s", error);
});
});