1 回答
TA贡献1874条经验 获得超12个赞
根据文档,handle
可以返回一个承诺,这将允许您在收到数据后构建响应。
理想情况下,您会进行更改findWarehouseKeepers
以返回承诺,但这里是一个对代码进行最小更改的示例:
handle(handlerInput) {
return new Promise(resolve => {
findWarehouseKeepers(warehouseKeeper => {
const speakOutput = "Die Lagerhüter sind die Produkte mit den Ids" + warehouseKeeper;
resolve(
handlerInput.responseBuilder
.speak(speakOutput)
.getResponse()
);
});
});
}
当然,您还需要考虑如果请求失败该怎么办,即您想拒绝承诺。
如果您更改findWarehouseKeepers为返回承诺,那么您可能可以将声明编写handle为(我不知道该代码在哪个环境中运行)并以看起来async同步的方式编写代码:
async handle(handlerInput) {
const warehouseKeeper = await findWarehouseKeepers();
return handlerInput.responseBuilder
.speak("Die Lagerhüter sind die Produkte mit den Ids" + warehouseKeeper)
.getResponse()
}
添加回答
举报