【发布时间】:2017-01-11 22:46:44
【问题描述】:
我正在尝试在发布请求中应用自定义函数,但它返回未定义。
我知道这是某种异步问题,但我无法弄清楚可能是什么问题。
问题所在的代码块
console.log(text); // <---- This shows correct value
A.prepare(function (text) {
console.log(text) // <---- This shows undefined
B.write(text, function (response) {
sendTextMessage(sender,response.message)
return response.message;
});
});
完整代码
app.post('/webhook/', function (req, res) {
// addPersistentMenu();
let messaging_events = req.body.entry[0].messaging;
for (let i = 0; i < messaging_events.length; i++) {
let event = req.body.entry[0].messaging[i];
let sender = event.sender.id;
if (event.message && event.message.text) {
let text = event.message.text;
console.log(text);
A.prepare(function (text) {
B.write(text, function (response) {
sendTextMessage(sender,response.message)
return response.message;
});
});
}
if (event.postback) {
let text = JSON.stringify(event.postback);
sendTextMessage(sender, "Postback received: "+text.substring(0, 200));
continue;
}
}
res.sendStatus(200)
});
【问题讨论】:
-
因为那是一个回调函数。您只是为第一个参数提供名称文本。并且不将文本的值传递给函数。
-
你想传入
test的哪个值` B.write(text, function (response) {`? -
@abdulbarik 我想传递 event.message.text
标签: javascript node.js express callback promise