ahooks中useRequest如何实现多接口并发请求及顺序控制?

老伟同学_5242

老伟同学_5242

2025-02-23

735人浏览

原创

ahooks中userequest如何实现多接口并发请求及顺序控制?

利用ahooks的useRequest实现高效的多接口并发请求与顺序控制

在页面加载时,需要同时调用多个API接口获取数据的情况很常见。ahooks的useRequest钩子函数提供了一种简洁且高效的方式来管理这些并发请求,并灵活控制请求的执行顺序。

并发请求

useRequest默认情况下会并发执行传入的多个请求函数。例如:

import { useRequest } from 'ahooks';

const fetch1 = () => {}; // 模拟接口请求1
const fetch2 = () => {}; // 模拟接口请求2

const { data: data1, loading: loading1, error: error1 } = useRequest(fetch1);
const { data: data2, loading: loading2, error: error2 } = useRequest(fetch2);

这段代码会同时发起fetch1和fetch2两个接口请求。

顺序请求控制

如果接口请求之间存在依赖关系,需要按照特定顺序执行,则可以通过options参数中的manual属性来控制:

MuleRun
MuleRun

一款AI办公效率工具,主要用于全球首个AI Agent交易平台,适合需要提升相关任务效率的用户。

下载
useRequest(fetch1, { manual: true });
useRequest(fetch2, { manual: true });

将manual设置为true后,需要手动调用run()方法来触发请求:

const ref1 = useRef(true);
const ref2 = useRef(true);

if (ref1.current) {
  useRequest(fetch1).run();
  ref1.current = false;
}

if (ref2.current && !loading1 && !error1) { // 确保fetch1请求完成
  useRequest(fetch2).run();
  ref2.current = false;
}

这样就保证了fetch2只有在fetch1成功完成后才会执行。

统一管理状态

useRequest返回的对象包含data、loading和error三个属性,方便统一管理多个请求的状态:

const { data: data1, loading: loading1, error: error1 } = useRequest(fetch1);
const { data: data2, loading: loading2, error: error2 } = useRequest(fetch2);

const loading = loading1 || loading2;
const error = error1 || error2;

if (!loading && !error) {
  // 所有请求都成功完成
  console.log('data1:', data1);
  console.log('data2:', data2);
}

通过以上方法,您可以使用useRequest高效地管理多个API接口的并发请求和顺序,并轻松处理请求状态。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

并发请求

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

1049

5

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.25

3340

5

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3228

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

5309

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3869

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

486

15

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

20

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

20

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

20

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
燕十八nginx精品视频教程
燕十八nginx精品视频教程

共23课时 | 8万人学习