错误重试
TIP
为保证体验,请打开开发者工具,选择网络面板,观察网络请求状态。如果请求响应时间过短,可以调到低速3G模式延长响应时间。
设置重试次数
通过 retryTimes 选项控制请求在发生错误时应重试的最大次数。
const { result, loading, error, run } = useRequest(request, {
retryTimes: 3,
});
WARNING
onError
仅会在错误重试次数用尽后触发,error
状态同理。
完整示例
result:
loading: false
error:
onSuccess:
onError:
<template>
<div class="demo-container">
<h3>result: <span>{{ result }}</span></h3>
<h3>loading: <span>{{ loading }}</span></h3>
<h3>error: <span>{{ error }}</span></h3>
<h3>onSuccess: <span>{{ onSuccessStr }}</span></h3>
<h3>onError: <span>{{ onErrorStr }}</span></h3>
<button class="primary" @click="handleRun">run</button>
<button @click="handleRunError">runError</button>
<button @click="reset">reset</button>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
import { useRequest } from '@superarale/vue-use-request';
import { request, IParams, IResult, correctKey } from './request';
const onSuccessStr = ref('');
const onErrorStr = ref('');
const onSuccess = (result: IResult) => {
onSuccessStr.value = `onSuccess triggered: ${JSON.stringify(result)}`;
};
const onError = (error: Error) => {
onErrorStr.value = `onError triggered: ${error}`;
};
const reset = () => {
result.value = null;
loading.value = false;
error.value = null;
onSuccessStr.value = '';
onErrorStr.value = '';
};
const { result, loading, error, run } = useRequest(request, {
retryTimes: 3,
onSuccess,
onError,
});
const handleRun = () => {
const params: IParams = {
key: correctKey,
};
run(params);
};
const handleRunError = () => {
const params: IParams = {
key: 'badkey',
};
run(params);
};
</script>