在一个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中怎么保证链式调用后台接口的更多相关文章

  1. vue项目webpack中Npm传递参数配置不同域名接口

    项目开发中,前端在配置后端api域名时很困扰,常常出现:本地开发环境: api-dev.demo.com测试环境: api-test.demo.com线上生产环境: api.demo.com, 这次是 ...

  2. 团队开发前端VUE项目代码规范

    团队开发前端VUE项目代码规范 2018年09月22日 20:18:11 我的小英短 阅读数 1658   一.规范目的: 统一编码风格,命名规范,注释要求,在团队协作中输出可读性强,易维护,风格一致 ...

  3. vue cli 中关于vue.config.js中chainWebpack的配置

    Vue CLI  的官方文档上写:调整webpack配置最简单的方式就是在vue.config.js中的configureWebpack选项提供一个对象. Vue CLI 内部的 webpack 配置 ...

  4. 前端Vue项目——登录页面实现

    一.geetest滑动验证 geetest官方文档地址:https://docs.geetest.com/ 产品——极速验证:基于深度学习的人机识别应用.极验「行为验证」是一项可以帮助你的网站与APP ...

  5. webpack 创建vue项目过程中遇到的问题和解决方法

    目录 1 webpack简介 2 webpack实现多个输入输出多个html 3  webpack 中的module下rules 下的use和loader选项 4 webpack 文件更新,如何使页面 ...

  6. 前端Vue项目——首页/课程页面开发及Axios请求

    一.首页轮播图 1.elementUI走马灯 elementUI中 Carousel 走马灯,可以在有限空间内,循环播放同一类型的图片.文字等内容. 这里使用指示器样式,可以将指示器的显示位置设置在容 ...

  7. Vue项目实践中的功能实现与要点

    本贴记录项目实践中,各种功能的实现与技术要点,均有待改进. 路由切换的时候,显示loading动画 目前方案是: 在每个页面都手动装载一个loading组件组件的显示依赖vuex里面的一个值 , 在r ...

  8. 前端Vue项目——购物车页面

    一.加入购物车的两种策略 1.加入购物车接口 在 src/restful/api.js 中写入添加购物车接口: // 加入购物车的接口 export const shopCart = (params) ...

  9. 前端Vue项目——初始化及导航栏

    一.项目初始化 创建webpack模板项目如下所示: MacBook-Pro:PycharmProjects hqs$ vue init webpack luffy_project ? Project ...

随机推荐

  1. arcgis api for javascript 学习(四) 地图的基本操作

    1.文章讲解的为地图的平移.放大.缩小.前视图.后视图以及全景视图的基本功能操作 2.主要用到的是arcgis api for javascript中Navigation的用法,代码如下: <! ...

  2. [20190913]完善vim的bccacl插件2.txt

    [20190913]完善vim的bccacl插件2.txt --//继续完善vim的bccacl插件.--//\bc 计算也可以直接使用 \bb 操作,这样操作更快一些.--//增加直接写好算式计算的 ...

  3. Oracle有哪些诊断事件

    作者:eygle | [转载请注出处]链接:https://www.eygle.com/archives/2004/12/oracle_diagnostics_events_list.html 经常有 ...

  4. 函数的名称空间,函数的嵌套(global, nonlocal),函数名的运用

    一 函数的名称空间 内置空间:存放python解释器内置函数的空间 全局空间:py文件运行时开辟的,存放的是执行的py文件(出去函数内部)的所有的变量与值的对用关系,整个py文件结束后才会消失. 局部 ...

  5. 7.python3实用编程技巧进阶(二)

    2.1.如何拆分含有多种分隔符的字符串 #2.1.如何拆分含有多种分隔符的字符串 s = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz' #第一种方法 def my__ ...

  6. mac上安装npm

    检查brew -v是否安装了homebrew这个macOS 缺失的软件包的管理器.如果安装,跳转到第3步,否则跳转到第二步: 安装homebrew.安装跳转到官网指导.等待安装好之后,输入brew - ...

  7. 使用JAVAScript技术在WEB网页实现摇一摇的应用

    实现效果如下: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  8. 5.Java基础_Java算术/字符/字符串/赋值运算符

    /* 算术/字符/字符串/赋值 运算符 */ public class OperatorDemo01 { public static void main(String[] args){ //算术运算符 ...

  9. vue项目关闭eslint校验

    [前言] eslint是一个JavaScript的校验插件,通常用来校验语法或代码的书写风格.这篇文章主要介绍了vue项目关闭eslint校验,需要的朋友可以参考下 [主体] 简介eslint esl ...

  10. 面向对象程序设计(Java) 第7周学习指导及要求

    2019面向对象程序设计(Java)第7周学习指导及要求 (2019.10.11-2019.10.14) 学习目标 掌握四种访问权限修饰符的使用特点: 掌握Object类的用途及常用API: 掌握Ar ...