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

正能量网站入口直接进入下载中文 wordpress 主题

正能量网站入口直接进入下载,中文 wordpress 主题,即买即送的网站有哪些,云主机建站核心思路 封装接口时返回 Promise 和 abort 方法: 为需要支持取消的接口返回一个对象,包含 promise 和 abort 方法,用户可通过 abort 主动中断请求。使用 AbortController 或 CancelToken: 推荐 AbortController(浏览…

核心思路

  1. 封装接口时返回 Promiseabort 方法
    为需要支持取消的接口返回一个对象,包含 promiseabort 方法,用户可通过 abort 主动中断请求。
  2. 使用 AbortControllerCancelToken
    • 推荐 AbortController(浏览器原生 API,兼容性更好)。
    • 若使用 axiosCancelToken,需额外处理。

实现步骤

1. 封装 Axios 实例
// src/api/index.js
import axios from 'axios';// 创建 Axios 实例
const instance = axios.create({baseURL: '/api',timeout: 10000,
});// 封装需要支持取消的接口
export const api = {// 需要支持取消的接口getUsers() {const controller = new AbortController();const { signal } = controller;const promise = instance.get('/users', { signal });return {promise,abort: () => controller.abort(), // 提供 abort 方法};},// 不需要取消的接口getPosts() {return instance.get('/posts');},
};

2. 在组件中使用
<template><div><!-- 组件内容 --></div>
</template><script setup>
import { onBeforeUnmount } from 'vue';
import { api } from '@/api';// 调用支持取消的接口
const { promise: usersPromise, abort: abortUsers } = api.getUsers();// 处理数据
usersPromise.then((response) => {console.log('用户数据:', response.data);}).catch((error) => {if (error.name === 'AbortError') {console.log('用户请求被取消');} else {console.error('请求失败:', error);}});// 在组件卸载时取消请求
onBeforeUnmount(() => {abortUsers(); // 主动取消请求
});
</script>

关键点说明

  1. 返回 Promiseabort 方法

    • 接口函数返回一个对象,包含 promiseabort 方法。
    • 用户可通过 abort 方法随时中断请求。
  2. 错误处理

    • 捕获 AbortError 判断是否为用户主动取消。
  3. 生命周期管理

    • onBeforeUnmount 中调用 abort,确保组件卸载时取消未完成的请求。

扩展场景

场景 1:手动触发取消
// 在用户点击取消按钮时触发
const cancelButton = () => {abortUsers(); // 主动调用 abort 方法
};
场景 2:防抖/节流中的取消
// 输入搜索框时,取消之前的请求
let currentAbortFn = null;const handleSearch = (query) => {// 取消之前的请求if (currentAbortFn) currentAbortFn();const { promise, abort } = api.getUsers({ query });currentAbortFn = abort;promise.then((data) => {// 处理数据});
};

其他注意事项

  1. 服务端支持

    • 前端取消请求仅终止浏览器端处理,服务端可能仍在执行。若需服务端终止操作,需传递唯一标识(如 requestId)。
  2. 避免重复调用

    • 确保 abort 方法在适当的时候调用(如组件卸载或用户主动操作),避免多次调用。

完整封装示例

// src/api/index.js
import axios from 'axios';const instance = axios.create({baseURL: '/api',timeout: 10000,
});export const api = {// 需要支持取消的接口getUsers(params) {const controller = new AbortController();const { signal } = controller;const promise = instance.get('/users', {params,signal,});return {promise,abort: () => controller.abort(),};},// 不需要取消的接口getPosts() {return instance.get('/posts');},
};

总结

通过以下步骤实现手动取消接口:

  1. 在封装接口时,返回 Promiseabort 方法。
  2. 在组件中通过 onBeforeUnmount 或用户操作调用 abort
  3. 错误处理时区分取消错误与其他错误。

此方法既保持了接口的灵活性,又实现了对特定请求的精准控制。


文章转载自:

http://FcALPi5T.yzdth.cn
http://8U7Ev1dM.yzdth.cn
http://AwnMjIPE.yzdth.cn
http://lm2ReabN.yzdth.cn
http://0Hkrttcz.yzdth.cn
http://mZCtreij.yzdth.cn
http://MVOf8w51.yzdth.cn
http://OFhGOObW.yzdth.cn
http://TcYBJDw0.yzdth.cn
http://joiNhd58.yzdth.cn
http://eNSWbzaK.yzdth.cn
http://O2u1IUb0.yzdth.cn
http://yHKEoZCt.yzdth.cn
http://wUtg2fUJ.yzdth.cn
http://QuPgmA8z.yzdth.cn
http://FAewF49T.yzdth.cn
http://SajFmxev.yzdth.cn
http://dK6qoSYW.yzdth.cn
http://7jb9B3CS.yzdth.cn
http://RJsZEVZA.yzdth.cn
http://o14SIuIj.yzdth.cn
http://dhTiDzvm.yzdth.cn
http://o1gWNJEh.yzdth.cn
http://FqNejffz.yzdth.cn
http://YiRAqvaT.yzdth.cn
http://RIs1HuCJ.yzdth.cn
http://HdBlMIHT.yzdth.cn
http://0bZolJqo.yzdth.cn
http://C1xFTzeJ.yzdth.cn
http://bfFk8FF8.yzdth.cn
http://www.dtcms.com/wzjs/629918.html

相关文章:

  • 厦门网上房地产官网查询seo前线
  • 广州市律师网站建设公司织梦做的的网站首页显示空白
  • 网深圳网站优化武钢建工集团建设分公司网站
  • 长沙建网站的wordpress for ipad
  • 网站数据分析工具做网站需要哪些成本
  • 网站如何微信支付建站seo赚钱
  • 遂宁市建设局网站wordpress中文购物主题
  • ppt模板怎么做 下载网站wordpress自定义栏目调用
  • 有哪些公司建设网站知名设计公司
  • 公司网站制作导航seo广告平台
  • 建设的网站深圳石岩网站建设
  • 上杭县城乡规划建设局网站wordpress怎么改模板
  • 网站开发管理学什么网站建设 河南
  • 网站js下载襄阳购物网站开发设计
  • 网站建设与设计毕业shej网站建设 模板
  • 南宁营销型网站建设公司网站后台的制作
  • 本地搭建php网站wordpress 无法搜索结果
  • 网站优化关键词排名怎么做多少钱要交税
  • 手机网站分页设计福州网站建设网络公司
  • 网站建设维保合同范本想学网络运营怎么开始
  • 天津建设网站的公司简介陇南市武都区住房和城乡建设网站
  • 网站建设方案书格式华为网站建设目标
  • 做T恤卖网站如何添加网站为信任站点
  • 网站规划的原则是什么有好的网址推荐吗
  • 怎样用网站做单笔外贸深圳网站建设定制平台
  • php中网站不同模板后台逻辑代码怎么管理注册新公司网上核名网站
  • 北京专门做网站的湘潭网站建设价格
  • 北京做网站哪家公司最好做的好的淘宝客网站
  • 教着做美食的网站志鸿优化网下载
  • 关于网站开发的毕业设计深圳网页制作电话