版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Zckguiying/article/details/85314269
主要思想:通过Promise.race()实现接口超时限制
// 定义上传文件接口函数
export const uploadFile= (params) => {
let uri = serverSrc + '/api/xxx/xxx' // 设置请求地址
return Promise.race([
uploadFilePromise(uri, params),
uploadFileTimeout(10000) // 10秒超时
])
}
// 定义请求接口函数
function uploadFilePromise(uri, params) {
return new Promise(function (resolve, reject) {
axios.post(uri, params, {
headers: {'Content-Type': 'multipart/form-data'}, // 以formData形式上传文件
withCredentials: true
}).then(response => {
if ((response.data.code !== '200' && response.data.code !== 200) && response.data.msg !== '') {
// console.log('上传文件出错!')
reject(response.data)
}
resolve(response.data.result)
})
})
}
// 定义超时函数
function uploadFileTimeout(ms) {
let delayInfo = {
timeoutMsg: '上传文件超时'
}
return new Promise((resolve, reject) => {
setTimeout(function () {
reject(delayInfo)
}, ms)
})
}