当前位置:首页 > uni-app

uniapp请求超时处理

2026-02-05 16:43:35uni-app

请求超时处理的常见方法

在UniApp中处理请求超时问题,可以通过以下几种方式实现:

设置全局请求超时时间main.js中配置全局请求超时时间,适用于所有使用uni.request发起的请求:

uniapp请求超时处理

uni.$http.setConfig((config) => {
  config.timeout = 10000 // 10秒超时
  return config
})

单个请求设置超时时间 针对特定请求单独设置超时时间:

uni.request({
  url: 'https://example.com/api',
  timeout: 5000, // 5秒超时
  success: (res) => {},
  fail: (err) => {}
})

使用Promise封装超时处理 结合Promise实现更灵活的超时控制:

uniapp请求超时处理

function requestWithTimeout(url, data, timeout = 8000) {
  return new Promise((resolve, reject) => {
    const timer = setTimeout(() => {
      reject(new Error('请求超时'))
    }, timeout)

    uni.request({
      url,
      data,
      success: (res) => {
        clearTimeout(timer)
        resolve(res.data)
      },
      fail: (err) => {
        clearTimeout(timer)
        reject(err)
      }
    })
  })
}

拦截器处理超时错误 通过拦截器统一处理超时错误:

uni.addInterceptor('request', {
  fail(err) {
    if (err.errMsg.includes('timeout')) {
      uni.showToast({
        title: '网络请求超时',
        icon: 'none'
      })
    }
  }
})

重试机制实现 对于重要请求可添加重试逻辑:

async function requestWithRetry(url, retryCount = 2) {
  try {
    return await requestWithTimeout(url)
  } catch (error) {
    if (retryCount > 0 && error.message.includes('timeout')) {
      return requestWithRetry(url, retryCount - 1)
    }
    throw error
  }
}

注意事项

网络状态检测应在发起请求前进行,可使用uni.getNetworkType检查网络状况。超时时间设置需根据实际网络环境和接口响应时间合理调整,通常建议8-15秒范围。对于大文件上传等特殊场景,需要适当延长超时时间或使用分片上传策略。

标签: uniapp
分享给朋友:

相关文章

uniapp 消息推送

uniapp 消息推送

uniapp 消息推送实现方法 使用uniPush服务 uniapp官方提供了uniPush服务,支持iOS、Android及小程序平台的消息推送。需要在manifest.json中配置推送模块,并按…

uniapp部署到服务器

uniapp部署到服务器

部署准备 确保本地开发环境已完成项目构建,生成静态文件(H5端为/dist/build/h5目录)。检查服务器环境是否安装Nginx/Apache等Web服务软件,并配置好域名解析。 上传文件 通过…

uniapp特性

uniapp特性

uniapp的核心特性 跨平台开发 uniapp支持一套代码编译到多个平台,包括iOS、Android、H5、微信小程序、支付宝小程序、百度小程序、字节跳动小程序等。开发者无需为不同平台单独编写代码。…

海康 uniapp

海康 uniapp

海康威视与UniApp集成方案 海康威视的硬件设备(如摄像头、NVR等)与UniApp结合,通常需要通过海康的开放平台API或SDK实现功能调用。以下是具体实现方法: 获取海康威视开放平台权限 注册…

uniapp 跟随键盘

uniapp 跟随键盘

uniapp 键盘弹出时调整布局的方法 在 uniapp 中实现页面内容跟随键盘弹出调整布局,可通过以下方式实现: 监听键盘高度变化 使用 uni.onKeyboardHeightChange 监听…

uniapp招聘开源

uniapp招聘开源

uniapp招聘开源项目推荐 以下是一些基于uniapp的开源招聘类项目,适合开发者参考或二次开发: DCloud招聘模板 官方提供的招聘类应用模板,包含职位列表、详情、投递等功能。 支持多端发布…