У меня есть приложение vue. js, я интегрирую поддержку стороннего поставщика платежей. Это работает так: пользовательский интерфейс отправляет запрос на оплату бэкэнду, бэкэнд обрабатывает его, отправляет запрос в PSP и возвращает URL-адрес перенаправления. Затем веб-интерфейс должен перенаправить на этот URL-адрес, по которому пользователь аутентифицируется с помощью PSP.
Поскольку связь с PSP осуществляется асинхронно на бэкэнде, и у меня нет двусторонней связи от бэкэнда к внешнему интерфейсу, мой интерфейс должен постоянно опрашивать серверную часть, спрашивая «Есть ли у нас URL переадресации еще нет? " снова и снова.
Мой первый наивный подход состоял в том, чтобы отобразить компонент (через v-if, когда запрос "инициализация платежа" возвращает OK), и в компоненте у меня есть это:
mounted() {
setInterval(this.pollForRedirect, 1000);
}
Я сделал это, чтобы продолжить разработку, но это кажется довольно грубым. Есть ли лучший способ сделать это? Возможно, что-то родное для vue?
Следует ли мне периодически увеличивать интервал опроса, чтобы не рассылать спам на сервер, если обработка занимает больше времени, чем ожидалось? Как остановить опрос, когда пользователь сдается и уходит из компонента?