【发布时间】:2018-10-20 13:42:22
【问题描述】:
我正在使用 pusher 来监听从另一台服务器发送的特定事件。
我已成功绑定到事件,但我的问题是代码越过了绑定并执行其余代码。
我尝试过使用Await,但这也无济于事
我不能使用setTimeout,因为推送事件中要接收的消息取决于用户是否完成支付。
代码
await pusher.bind(trans_id, function(data) {
if (data.message === 'success') {
agent.add('Transaction was successful');
} else {
agent.add('Transaction was unsuccessful');
}
});
agent.add('Transaction Successful');
console.log('We got here');
如你所见,代码并没有等待pusher.bind执行,而是直接跳转到下一个agent.add和console.log
环境:谷歌云函数
代码用于 DialogFlow
请帮忙
【问题讨论】:
-
请不要显示代码截图。最好将代码复制到问题中,以便于搜索和阅读。
-
我删除了图片@DougStevenson
-
您在 firebase 函数中使用的是哪个版本的 node.js?如果版本是节点 6,您可以将节点版本更改为 8,现在处于测试阶段,或者您可以使用 babel 在节点 6.0 中支持异步等待
-
@AniketPawar我使用 8... async await 已经可以工作了...
标签: javascript node.js google-cloud-functions dialogflow-es pusher-js