前端vue项目js中怎么保证链式调用后台接口
在一个for循环中对同一接口调用多次,如何保证逐步执行,同步执行。
- html部分
- <DcFileUpload
- v-for="(item, index) of fileLengthList"
- :key="index"
- ref="fileUploadData">
- </DcFileUpload>
- DcFileIliad组件部分
- //slot 标签就是为了备用留坑,如果用户需要在组件中增加节点就可以了,类似于插座功能
- <template>
- <div>
- <div class="form-unit form-upload" style="display:inline-block">
- <Input
- v-model="fileName"
- class="tc-15-input-text m"
- disabled
- :placeholder="placeholder" />
- <a class="tc-upload-btn" title="选择文件">
- <div class="file-input-wrap">
- <input
- ref="input"
- type="file"
- name="file"
- :accept="accept"
- style="z-index:999"
- @change="handleFileChange" />
- <span>选择文件</span>
- </div>
- </a>
- <slot></slot>
</div>- </div>
- </template>
- <script>
- import { mapActions } from 'vuex';
- import DcUploadHelper from '@/common/utils/dcUploadHelper';
- export default {
- props: {
- directoryId: {
- type: String,
- default: '',
- },
- accept: {
- type: String,
- default: '',
- },
- placeholder: {
- type: String,
- default: '还未选择文件',
- },
- },
- data() {
- return {
- fileName: '', // 文件名
- files: [],
- };
- },
- methods: {
- ...mapActions('algorithm', [
- 'CreateUploadJob'
- ]),
- handleFileChange(e) {
- const { files } = e.target;
- if (files[0] && files[0].name && files[0].size > 0) {
- this.fileName = files[0].name;
- this.files = files;
- } else {
- this.fileName = '';
- this.files = null;
- }
- },
- handleFileDelete() {
- this.fileName = '';
- this.files = [];
- },
- upload() {
- return new Promise(async (resolve, reject) => {
这里一般写请求方法,向后台发送数据请求- resolve(status)或reject(status);
- });
- });
- },
- cancelUpload() {
- this.showUploadModel = false;
- DcUploadHelper.stopChunkUpload();
- },
- hasFile() {
- return this.fileName !== '';
- }
- }
- };
- </script>
- <style lang="less">
- </style>
上面代码写了,ref如何在数组中使用,一般都是直接写一个ref对象就能获取到整个循环的对象节点数组,就能按下标读取了
- js 部分
- async handleSubmitForm() {
- // 拿到对应的对象数组
- const { fileUploadData } = this.$refs;
- for (let index = 0; index < fileUploadData.length; index++) {
- const element = fileUploadData[index];
- const ret = await element.upload();
- cosnole.log(ret);
- }
- }
上面代码的 async 和 await可以保证多次调用同一接口,按链式调用,上一次接口请求数据回包后才进行下次调用
前端vue项目js中怎么保证链式调用后台接口的更多相关文章
- vue项目webpack中Npm传递参数配置不同域名接口
项目开发中,前端在配置后端api域名时很困扰,常常出现:本地开发环境: api-dev.demo.com测试环境: api-test.demo.com线上生产环境: api.demo.com, 这次是 ...
- 团队开发前端VUE项目代码规范
团队开发前端VUE项目代码规范 2018年09月22日 20:18:11 我的小英短 阅读数 1658 一.规范目的: 统一编码风格,命名规范,注释要求,在团队协作中输出可读性强,易维护,风格一致 ...
- vue cli 中关于vue.config.js中chainWebpack的配置
Vue CLI 的官方文档上写:调整webpack配置最简单的方式就是在vue.config.js中的configureWebpack选项提供一个对象. Vue CLI 内部的 webpack 配置 ...
- 前端Vue项目——登录页面实现
一.geetest滑动验证 geetest官方文档地址:https://docs.geetest.com/ 产品——极速验证:基于深度学习的人机识别应用.极验「行为验证」是一项可以帮助你的网站与APP ...
- webpack 创建vue项目过程中遇到的问题和解决方法
目录 1 webpack简介 2 webpack实现多个输入输出多个html 3 webpack 中的module下rules 下的use和loader选项 4 webpack 文件更新,如何使页面 ...
- 前端Vue项目——首页/课程页面开发及Axios请求
一.首页轮播图 1.elementUI走马灯 elementUI中 Carousel 走马灯,可以在有限空间内,循环播放同一类型的图片.文字等内容. 这里使用指示器样式,可以将指示器的显示位置设置在容 ...
- Vue项目实践中的功能实现与要点
本贴记录项目实践中,各种功能的实现与技术要点,均有待改进. 路由切换的时候,显示loading动画 目前方案是: 在每个页面都手动装载一个loading组件组件的显示依赖vuex里面的一个值 , 在r ...
- 前端Vue项目——购物车页面
一.加入购物车的两种策略 1.加入购物车接口 在 src/restful/api.js 中写入添加购物车接口: // 加入购物车的接口 export const shopCart = (params) ...
- 前端Vue项目——初始化及导航栏
一.项目初始化 创建webpack模板项目如下所示: MacBook-Pro:PycharmProjects hqs$ vue init webpack luffy_project ? Project ...
随机推荐
- 版本管理·玩转git(推到远程仓库)
经过前面的练习,你在本地的仓库里管理代码已经比较熟练了,但如果是团队开发呢,如何配合起来呢? 我们可以把版本仓库放在互联网上,开发者把自己最新的版本推到线上仓库,同时,把线上仓库的最新代码拉到自己本地 ...
- 算法基础:BFS和DFS的直观解释
算法基础:BFS和DFS的直观解释 https://cuijiahua.com/blog/2018/01/alogrithm_10.html 一.前言 我们首次接触 BFS 和 DFS 时,应该是在数 ...
- MySQL通过SHOW TABLE STATUS查看库中所有表的具体信息
有时候我们想看下指定库下所有表的使用情况,比如,查询表的Table大小,什么时候创建的,数据最近被更新的时间(即最近一笔insert/update/delete的时间).这些信息对我们进行库表维护很有 ...
- Pwnable-leg
Download : http://pwnable.kr/bin/leg.c Download :http://pwnable.kr/bin/leg.asm 友链 https://blog.csdn. ...
- Keras:
https://keras.io/zh/layers/core/ keras使用稀疏输入进行训练 2018.06.14 12:55:46字数 902阅读 760 稀疏矩阵 稀疏矩阵是指矩阵中数值为0的 ...
- ResultMap(还没细看)
前言 MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转换的手段了,而res ...
- springboot集成freemarker属性配置(不知道是针对于某个版本,2.0后有变动)
freemarker属性配置 freemarker属性配置: spring.freemarker.allow-request-override=false # 设置是否允许HttpServletReq ...
- Alpha冲刺(1/4)
队名:天码行空 组长博客连接 作业博客连接 团队燃尽图(共享): GitHub当日代码/文档签入记录展示(共享): 组员情况: 组员1:卢欢(组长) 过去两天完成了哪些任务:SVN管理工具搭建 展示G ...
- 面向对象软件构造 (Bertrand Meyer 著)
Part A: The Issues 议题 第一章 软件品质 第二章 面向对象的标准 Part B: The Road To Object Orientation 通向面向对象之路 第三章 模块性 第 ...
- 2019 SDN上机第4次作业
1. 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 配置java环境 安装OpenDayLight控制器 2. 启动并安装插件 cd distribution-ka ...