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

discuz论坛 整合到网站关键词热度

discuz论坛 整合到网站,关键词热度,自助建站的优势,财经网站直播系统建设需求: 上传文件,但是后端接口不支持多文件上传,但是一次性发出很多请求的话如果有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.ds6.com.cn/news/69230.html

相关文章:

  • 公司网站服务商北京官网seo
  • 企业信用信息公示系统查询武汉seo顾问
  • 低价网站制作顺德seo网络培训机构
  • 将网站的字体设计成百分比的形式要怎样定义杭州网站推广与优化
  • 权威的手机网站建设百度站长平台链接提交
  • 免费自助建站自助建站平台企业营销推广怎么做
  • 蛋糕行业网站建设方案seo优化网站
  • wordpress 手机注册插件广州网站设计专注乐云seo
  • 长春做公司网站的seo发帖工具
  • 聊城集团网站建设seo快速排名多少钱
  • 网站开发进阶商品seo优化是什么意思
  • 上海网络推广外包公司成都网站排名生客seo怎么样
  • 中国化工建设协会网站小说关键词搜索器
  • 商城版免费网站制作无忧软文网
  • 建设门户网站的重要性百度客服联系方式
  • 网站网络优化宁德市教育局
  • 免费团购网站模板长春网站建设平台
  • 开一间网站建设有限公司百度指数网址
  • 成都网站建设公司是什么杭州专业seo服务公司
  • 做论坛网站看什么书网站推广公司排名
  • 网站备案基础知识优化方案怎么写
  • 一个网站开发需要几人新冠疫情最新数据
  • 江西中创建设有限公司网站深圳谷歌seo推广
  • 个人网站毕业论文个人主页网页设计
  • WordPress留言表单仿制seo怎么快速提高排名
  • 江苏建设银行网站seo排名首页
  • 网站后台上传内容前台首页不显示seo综合查询站长工具关键词
  • 想用vs做网站 学什么竞价推广思路
  • 凡科 做网站宁波优化网页基本流程
  • 苏州高端网站建设咨询网站开发从入门到实战