在NodeJS中传递回调函数变成Object
Passing callback function in NodeJS turns into Object
我正在NodeJS中使用AWS Lambda函数制作Alexa技能。
当我调用Intent:时,应用程序抛出错误
"errorMessage": "Exception: TypeError: object is not a function"
首先,我的应用程序获取一个事件。如果是意向,则调用:
exports.handler = function (event, context) {
try {
...
else if (event.request.type === "IntentRequest") {
onIntent(
event.request,
event.session,
function intent_callback(sessionAttributes, speechletResponse) {
context.succeed(buildResponse(sessionAttributes, speechletResponse));
}
);
您可以看到上面向onIntent()
传递了一个回调。它检查它是哪个Intent。这里的Console.logging将传递回调显示为function
:
function onIntent(intentRequest, session, callback) {
if ("ItemIntent" === intentName) {
console.log(callback); // This is a function
getOrderResponse(intent, session, callback);
然而,getOrderResponse()
中callback
的类型不知何故变成了一个对象?这就是为什么我会得到这个错误,但我不明白它怎么不是function
类型。为什么它是一个物体?
function getOrderResponse(callback) {
console.log('getOrderResponse', callback); // type = Object: { name: 'ItemIntent', slots: { Item: { name: 'Item' } } }
var card_title = config.data().CARD_TITLE;
var sessionAttributes = {},
speechOutput = 'So you want quick order',
shouldEndSession = false,
repromptText = 'Hello';
sessionAttributes = {
'speechOutput': repromptText,
'repromptText': repromptText,
'questions': 'some questions'
};
callback(sessionAttributes, buildSpeechletResponse(card_title, speechOutput, repromptText, shouldEndSession));
}
回调必须是第三个参数。
getOrderResponse(intent, session, callback);
您要发送的第一个参数是intent
对象。
function getOrderResponse(callback) {
应该是
function getOrderResponse(intent, session, callback) {
相关文章:
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- 如何取消object.prototypes javascript的一个函数
- 具有子类的构造函数中的Object.freeze
- Object.assign(),函数方法和内存使用
- 使用元素选择器向Object添加函数
- 成员函数中的Javascript“this”object==“window”
- 这在 Object 方法中不引用对象,而是引用函数绑定到的标记
- 有人可以解释一下Object.defineProperty如何在javascript的构造函数中工作
- 运行咕噜咕噜咕噜抛出 _.object 不是函数错误
- 从Object Literal调用函数
- 将函数参数传递给Object.assign
- 不涉及私有“函数”的“Object.create”的自定义实现
- 在NodeJS中传递回调函数变成Object
- Underscore.js:具有_.object函数的意外行为
- Javascript错误Object函数没有方法'url'
- Array.insert函数错误,因为Object函数Array(){〔本机代码〕}没有方法'插入'
- 用于更改object.object属性的函数
- 访问Object字段的JavaScript函数
- TypeError:对象函数Object(){〔本机代码〕}没有方法'方法'
- 如何找到属性的set/get函数(Object.defineProperty)