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()
}
添加回答
舉報