我正在为aws lambda-lex学习,我找到了带有node.js的咖啡机器人示例代码。
// --------------- Main handler -----------------------
// --------------- in node.js -----------------------
// Route the incoming request based on intent.
// The JSON body of the request is provided in the event slot.
exports.handler = (event, context, callback) => {
try {
dispatch(event, (response) => callback(null, response));
} catch (err) {
callback(err);
}
};
我想使用回调参数,但我无法在python
中找到它// --------------- Main handler -----------------------
// --------------- in python -----------------------
def lambda_handler(event, context):
dispatch(event)
# >>> this handler doesn't include callback <<<
如果需要,请比较
其实我想获得这个功能(构建消息给lex)
callback(elicitSlot(outputSessionAttributes, intentRequest.currentIntent.name, slots, 'BeverageType',
buildMessage('Sorry, but we can only do a mocha or a chai. What kind of beverage would you like?'),
buildResponseCard("Menu", "Today's Menu", menuItem)));
这里有完整的示例代码(https://github.com/awslabs/amz-ai-building-better-bots/blob/master/src/index.js)
任何人都可以帮助我吗?
答案 0 :(得分:5)
使用回调是NodeJS中常用于管理异步执行的模式。你不需要用Python(对于这个特定的用例)。
NodeJS中的这个片段......
callback(null, response)
相当于
return response
在Python中。