Непрерывный опрос бэкэнда в vue. js - PullRequest
0 голосов
/ 08 мая 2020

У меня есть приложение vue. js, я интегрирую поддержку стороннего поставщика платежей. Это работает так: пользовательский интерфейс отправляет запрос на оплату бэкэнду, бэкэнд обрабатывает его, отправляет запрос в PSP и возвращает URL-адрес перенаправления. Затем веб-интерфейс должен перенаправить на этот URL-адрес, по которому пользователь аутентифицируется с помощью PSP.

Поскольку связь с PSP осуществляется асинхронно на бэкэнде, и у меня нет двусторонней связи от бэкэнда к внешнему интерфейсу, мой интерфейс должен постоянно опрашивать серверную часть, спрашивая «Есть ли у нас URL переадресации еще нет? " снова и снова.

Мой первый наивный подход состоял в том, чтобы отобразить компонент (через v-if, когда запрос "инициализация платежа" возвращает OK), и в компоненте у меня есть это:

 mounted() {
        setInterval(this.pollForRedirect, 1000);
    }

Я сделал это, чтобы продолжить разработку, но это кажется довольно грубым. Есть ли лучший способ сделать это? Возможно, что-то родное для vue?

Следует ли мне периодически увеличивать интервал опроса, чтобы не рассылать спам на сервер, если обработка занимает больше времени, чем ожидалось? Как остановить опрос, когда пользователь сдается и уходит из компонента?

...