当前位置: 首页 > article >正文

等待多个请求(请求并发执行)都完成后结束Loading框

等待多个请求(请求并发执行)都完成后结束Loading框

// 这里用vue进行示范,react使用useEffect是一样的
onMounted(() => initializeApp(
  initSwiper(),
  initNoticeText(),
  initCardTypes(),
  initCards()
));

/**
 * 传入多个promise对象,当全部结束时取消Loading
 * @param promises 传入多个promise对象,当全部结束时取消Loading
 */
export const initializeApp = async (...promises: Promise<void>[]) => {
  // loading方法全局封装成一个组件
  showLoading();
  try {
    await Promise.all(promises);
  } catch (e) {
    console.error(e);
  } finally {
    hideLoading();
  }
};

// 其中一个方法,经过async返回的是一个promise对象
const initCards = async () => {
  return getCards().then(res => {
    cards.value = res.rows as card[]
  })
}

export const getCards = () => {
  return httpPostByForm<any, card>("xxxx, {
    clientType,
    hot: "true",
  });
};

export const httpPostByForm = <T, U>(url: string, data?: any) => {
  return http<T, U>({
    method: "POST",
    url: url,
    header: { "Content-Type": "application/x-www-form-urlencoded" },
    data: data,
  });
};

// 下面这里使用axios是一样的
export const http = <T, U>(options: UniApp.RequestOptions) => {
  // 1. 返回Promise对象
  return new Promise<HttpResponse<T, U>>((resolve, reject) => {
    uni.request({
      ...options,
      success(res) {
        resolve(res.data)
      },
      false(err: any) {
        reject(err);
      },
    });
  });
};

http://www.kler.cn/a/144786.html

相关文章:

  • 前端路由hash和history的六大区别
  • 【LeetCode】挑战100天 Day15(热题+面试经典150题)
  • c++11新特性篇-可调用对象包装器, 绑定器
  • Python基础教程: sorted 函数
  • 河南省第五届“金盾信安杯”网络与数据安全大赛实操技能赛 部分wp(自己的一些思路和解析 )(主misc crypto )
  • 快手AI布局:从直播电商到大模型,如何打造智能生态?
  • C# 关于异常处理 try-catch语句的使用
  • 【Docker】从零开始:10.registry搭建私有仓库
  • 使用Ruby过滤目录容量大小
  • 在 STM32 上实现温度补偿和校正
  • 计算机视觉面试题-01
  • 数据分片在分布式 SQL 数据库中的工作原理
  • 使用 STM32 读取和解析 NTC 热敏电阻的数值
  • 9.4 Windows驱动开发:内核PE结构VA与FOA转换
  • 动态规划从入门到精通
  • 【实战】K8S Helm部署Redis Cluster Redisinsight
  • 从书籍结构体中查找定价最高的书籍
  • 【SpringMVC】 对请求的不同响应
  • postgreSQL如何快速查询大表数据量
  • 二、类与对象(二)