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