javascript - 暂停一段代码在谷歌云函数/Dialogflow中运行
问题描述
我正在使用 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
请提供任何帮助
解决方案
只需在回调中继续您的程序逻辑即可。pusher.bind
非常快地完成执行,它是稍后执行的回调。
pusher.bind(trans_id, function(data) {
if (data.message === 'success') {
agent.add('Transaction was successful');
} else {
agent.add('Transaction was unsuccessful');
}
console.log('We got here');
});
推荐阅读
- multiline - pdftk 填充的 texraea 不可滚动
- javascript - 如何在 JavaScript 中从子对象访问父对象属性
- java - 如何在 jscrollpane 中自动添加滚动条?
- google-cloud-platform - Google Cloud Redis - IP 地址更改没有警告
- java - Java Spring Boot Web App:处理 404 异常
- youtube-data-api - Youtube API 响应片段中发布的时区是什么?
- r - 展平数据框列表并提取变量
- r - 带有 prettyRadioButtons 和 checkboxGroupInput 的闪亮 if 语句
- rust - 可以在枚举和向量的内容之间生成匹配
- sql - Oracle 中从下划线开始的子字符串