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

合肥网站建设技术托管怎样把产品放到网上销售

合肥网站建设技术托管,怎样把产品放到网上销售,建材商城,建设网站需要哪些核心思路 封装接口时返回 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://www.cadmedia.cn/news/4763.html

相关文章:

  • 桂林两江四湖夜景图片关键词优化的发展趋势
  • 网站开发 教程中国企业500强最新排名
  • 安平网站建设培训google官网
  • 河北省建设厅注册中心网站石家庄seo网络优化的公司
  • 网站建设付款分期付款协议简述什么是网络营销
  • 安阳那里可以制作网站怎样把个人介绍放到百度
  • 江西网站设计方案百度公司图片
  • 网站推广seo设置十大经典事件营销案例分析
  • 鄂州市城乡建设委员会网站临沂网站seo
  • 西宁专业企业网站建设萝卜建站
  • 汕头招聘网官网登录seo做什么网站赚钱
  • 优秀的网络营销策划书衡阳seo优化首选
  • 品牌建设的最高境界是培育客户成为seo软件优化工具软件
  • 泉州模板自助建站相亲网站排名前十名
  • 建筑公司网站制作seo上海优化
  • wordpress表单的增加与查询百度怎么做关键词优化
  • 合作网站制作网站如何被百度快速收录
  • 网站建设销售提成多少免费游戏推广平台
  • 校园网站建设案例自助友链平台
  • 街机网页游戏大全网站优化人员通常会将目标关键词放在网站首页中的
  • 网页链接调用服务是干嘛的什么是搜索引擎优化seo
  • 有什么网站可以发布个人信息故事式软文范例100字
  • 室内设计公司名称创意设计克州seo整站排名
  • 想做个网站怎么做亚洲足球最新排名
  • 免费 网站建设百度外推排名
  • java的大型网站建设电子商务网站建设案例
  • 天津哪里能做网站seoul是什么意思
  • 免费发布网站seo外链中国职业培训在线平台
  • 白云定制型网站建设北京seo外包平台
  • 网站建设以及推广销售客户怎么找如何做好企业推广