Dialogflow:是否在异步调用中使用
我是javascript世界的新手,并且一直在Google上对Actions进行修改。我有一个先前在运行的操作,但是在尝试简化代码后,我遇到了一个新错误,似乎无法弄清楚。该代码应该调用数据库,并根据用户选择的日期将信息返回给用户。
问题:该代码应该调用数据库,并根据用户选择的日期将信息返回给用户。当我使用axios调用URL时,意图似乎破裂了。当我测试功能时,我从Google Cloud Platform收到以下错误:“错误:未设置任何响应。这是否在未作为对意图处理程序的承诺返回的异步调用中使用?”
app.intent('Moon', (conv, {date}) => {
// Sets date to today if none given
if (!date) {
date = new Date().toISOString();
}
// Slices date string to match date format in database
const dateSlice = date.slice(5, 9);
// Call to row in dabase for the given date
function getData() {
return axios.get(`example/search?Date=${dateSlice}`);
}
return getData().then(res => {
res.data.map(con => {
conv.ask(`On X date there will be a ${con.Object1}`);
});
});
});
回答如下:它可以与承诺有关,但是您似乎正确地处理了它们。
- 对
axios.get()
的呼叫正在返回一个承诺... - ...您要在
getData()
...中返回的内容> - ...在[Moon] Intent处理程序中作为
getData().then()
块的一部分返回。
我更怀疑这是一个逻辑问题。如果res.data
是一个空数组,那么将不会有任何对conv.ask()
的调用,因此您最终将不询问任何内容。
res.data
有两个以上的项目,也有问题。在这种情况下,您将产生一个错误,因为您已回复了两个以上的“简单”响应。
两种方式-您可能希望登录res
和/或res.data
以确保您恢复了所想的内容。
Dialogflow:是否在异步调用中使用
我是javascript世界的新手,并且一直在Google上对Actions进行修改。我有一个先前在运行的操作,但是在尝试简化代码后,我遇到了一个新错误,似乎无法弄清楚。该代码应该调用数据库,并根据用户选择的日期将信息返回给用户。
问题:该代码应该调用数据库,并根据用户选择的日期将信息返回给用户。当我使用axios调用URL时,意图似乎破裂了。当我测试功能时,我从Google Cloud Platform收到以下错误:“错误:未设置任何响应。这是否在未作为对意图处理程序的承诺返回的异步调用中使用?”
app.intent('Moon', (conv, {date}) => {
// Sets date to today if none given
if (!date) {
date = new Date().toISOString();
}
// Slices date string to match date format in database
const dateSlice = date.slice(5, 9);
// Call to row in dabase for the given date
function getData() {
return axios.get(`example/search?Date=${dateSlice}`);
}
return getData().then(res => {
res.data.map(con => {
conv.ask(`On X date there will be a ${con.Object1}`);
});
});
});
回答如下:它可以与承诺有关,但是您似乎正确地处理了它们。
- 对
axios.get()
的呼叫正在返回一个承诺... - ...您要在
getData()
...中返回的内容> - ...在[Moon] Intent处理程序中作为
getData().then()
块的一部分返回。
我更怀疑这是一个逻辑问题。如果res.data
是一个空数组,那么将不会有任何对conv.ask()
的调用,因此您最终将不询问任何内容。
res.data
有两个以上的项目,也有问题。在这种情况下,您将产生一个错误,因为您已回复了两个以上的“简单”响应。
两种方式-您可能希望登录res
和/或res.data
以确保您恢复了所想的内容。
与本文相关的文章
评论列表 (0)
- 暂无评论