0
我试图让我的ajax调用在最初失败时重试。如果最初的ajax调用失败并且超时时间为5秒,则每次都会执行3次。该功能正在导入我的VUE组件作为方法和被称为上ready()
使用递归重试vue资源ajax调用
export function getOrderStatus (order) {
let url = `/orders/status/${order.id}`
let promise = this.$http.get(url)
function retry(order, path, promise, retryAttempt) {
promise.then((response) => {
if (response.body.status === 'success') {
showOrderStatus()
}
}, (response) => {
if (retries < 2) {
retryAttempt++
setTimeout(retry(order, path, promise, retryAttempt), 5000);
} else {
handleError()
}
})
}
retry(order, path, promise, 0)
}
组件
import { getOrderStatus } from '../shared'
export default {
name: 'order-page',
props: { order },
methods: { getOrderStatus },
ready() {
this.getOrderStatus(order)
}
}
我不知道这是否是去重试AJAX调用所以最好的办法任何意见,将不胜感激。
谢谢我认为这是一起更多。任何想法,为什么我得到'未捕获(诺言)类型错误:拒绝不是一个函数“,但? – cvDv
我只能假设我在上面输入了错字,或者在复制到代码时出错。我只是记录各种方法,看看它会出错。如果我有机会,我会看看我是否可以稍后构建演示... – GuyC
谢谢我实际上解决了它。还有一个问题,应该在哪里调用showOrder()?我假设替换我原来的'ready()'函数 – cvDv