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

网站做系统外链网盘网站

网站做系统,外链网盘网站,手机酒店网站建设,要做好网络营销首先要需求: 上传文件,但是后端接口不支持多文件上传,但是一次性发出很多请求的话如果有100个文件那对后端的压力又太大了在上传的时候还需要有停止上传的按钮 进程: async await 只能做到第一步,但是无法在上传中的时候关…

需求:

  • 上传文件,但是后端接口不支持多文件上传,但是一次性发出很多请求的话如果有100个文件那对后端的压力又太大了
  • 在上传的时候还需要有停止上传的按钮

进程:

  • async await 只能做到第一步,但是无法在上传中的时候关闭这个进程,只能先隐藏进程然后等当前进程结束之后在代码下面加一个判定是不是已经关闭
const uploadFile = async () => {isCancel.current = false;for (let i = 0; i < fileList.length; i++) {if (isCancel.current) {return;}const file = fileList[i]const res = await uploadFiles({ file })if (isCancel.current) {break;}}
  • 但是这种做法只有在等 uploadFiles 里所有的东西都结束之后才能判定下一步的isCancel,但是这样会有一个问题,就是如果uploadFiles 执行时间很长,那么要么cancel 的执行时间会很长,要么就提前隐藏上传界面,但是这样有风险,如果用的人在cancel 的时候又点击了一下上传,那么就完了, 这个方法里的isCancel 又会变成 false,然后继续执行
  • 使用传统的 Promise 中的reject 方法可以随时停止这个异步行为
const createCanCancelRequest = (requestFunc: () => Promise<any>) => {let func = () => {}const promise = new Promise((resolve, reject) => {func = () => reject("上传停止");requestFunc().then(resolve).catch(reject)})return { cancel: func, promise }
}
  • 这个方法接收一个传入的匿名函数,然后将匿名函数包裹在 Promise 里,执行并返回一个cancel 方法
  • 这个cancel 就是Promise 的 reject 方法,在调用这个方法之后未执行部分就会停止执行
  • 但是这个方法有个缺点就是要自己手动写一个sleep,在上一步执行完成之前,都不能停止sleep
const uploadFile = async () => {isCancel.current = false;for (let i = 0; i < fileList.length; i++) {if (isCancel.current) {return;}const file = fileList[i]isBreak.current = falseconst {cancel, promise} = createCanCancelRequest(() => {uploadFiles({ file });isBreak.current = true})while(1) {await new Promise(resolve => setTimeout(resolve, 1000));if (isBreak.current) {break}}}

拓展:

  • sleep 的逻辑,启动一个setTimeout 这是一个异步的实现,所以可以用 Promise 包起来并且做一个 await 就能实现暂停几秒的逻辑
http://www.dinnco.com/news/48207.html

相关文章:

  • 四川哪家网站做的最好电商运营seo
  • 发不了软文的网站怎么做关键词优化设计案例网
  • 欧美做暖网站无锡哪里有做网站的
  • wordpress无法创建数据库电脑优化大师官方免费下载
  • 外国炫酷网站seo岗位
  • 网站建设业务员seo优化方法有哪些
  • 技术支持东莞网站建设机械新乡网站优化公司
  • 阿里巴巴黄页网站第三方平台推广
  • 什么好的网站学做食品交换友链要注意什么
  • 做网站 java net抖音关键词排名软件
  • 网站建设所需基本资料天门网站建设
  • ipad 设计网站seo接单
  • 有利于优化的网站建设网页制作教程书籍
  • 昆山企业做网站简述如何对网站进行推广
  • 网站在线订单系统怎么做外包公司软件开发
  • 福州网站建设印秀aso优化师主要是干嘛的
  • 做机械最好的b2b网站合肥seo推广培训班
  • 泉州网站建设推广网络科技公司
  • 上海网站建设好处windows优化大师会员兑换码
  • php微信微网站怎么做国内搜索引擎排名第一的是
  • 营销型网站建设套餐官网seo哪家公司好
  • 网站推广是怎么做的百度推广营销
  • pr效果做的好的网站有哪些推广方案万能模板
  • 铁威马 Nas 做网站2023年新闻小学生摘抄
  • 文昌市建设局网站网络优化软件有哪些
  • 番禺 大石网站建设网络策划与营销
  • 免费建小程序网站个人博客登录入口
  • 网站建设高效解决之道湘潭网站设计外包公司
  • seo公司网站企业网站seo诊断报告
  • 网站首页上的动画是咋做的百度seo报价方法