Приостановка блока кода из облачных функций Google / Dialogflow - PullRequest
0 голосов
/ 20 октября 2018

Я использую 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

Среда: Google Cloud Functions

Код для DialogFlow

Любая помощь, пожалуйста

1 Ответ

0 голосов
/ 22 октября 2018

Просто продолжайте логику вашей программы внутри обратного вызова.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');
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...