0

我正在使用 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

请提供任何帮助

4

1 回答 1

0

只需在回调中继续您的程序逻辑即可。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');
    });
于 2018-10-22T14:02:28.470 回答