【发布时间】:2020-05-08 16:24:19
【问题描述】:
我有一个 vue.js 应用程序,我正在集成第三方支付提供商支持。它的工作方式是 UI 向后端发送支付请求,后端对其进行处理,向 PSP 发送请求,然后返回重定向 url。然后前端需要重定向到用户通过 PSP 进行身份验证的这个 url。
由于与 PSP 的通信是在后端异步处理的,而且我没有从后端到前端的双向通信,所以我的前端本质上需要不断地轮询后端,询问“我们是否有重定向 url ?”一遍又一遍。
我的第一个天真的方法是显示一个组件(通过 v-if,当“初始化付款”请求返回 OK 时)并且在组件中我有这个:
mounted() {
setInterval(this.pollForRedirect, 1000);
}
我这样做是为了继续开发,但它看起来相当粗糙。有没有最佳实践方法来做到这一点?也许是 Vue 原生的东西?
我是否应该定期增加轮询间隔,以便在处理时间超过预期时不会向服务器发送垃圾邮件?当用户放弃并离开组件时如何停止轮询?
【问题讨论】:
-
你考虑过使用 websockets 吗?
-
我受到项目架构的限制,前端是 vue.js,后端是 REST API 端点。我没有双工。
-
可能是网络工作者?
-
不,考虑到您的限制,我会这样做