首页 > 其他分享 >【JS】Promise.all实现所有接口加载完成loading关闭

【JS】Promise.all实现所有接口加载完成loading关闭

时间:2024-03-14 11:31:17浏览次数:31  
标签:code return resolve res JS item loading Promise

将每个请求封装成promise对象,当请求到数据后都resolve出去,再调用Promsie.all方法将每个promise对象作为参数传入进去。这样每个api的promise对象状态都resolve“解决后”,就能在 Promise.all([p1,p2…p]).then中拿到所有api请求完成的状态,从而实现效果。

  created() {
    this.loading = true
    Promise.all([
      this.getAccountList(),
      this.getCustomerList()
    ]).finally((arr) => {
      this.loading = false
    })
  },
  methods: {
    getAccountList() {
      return new Promise((resolve) => { // 关键代码
        getAccountList().then((res) => { // 接口
          this.accountOptions = res.data.map(item => {
            const obj = {
              code: item.code,
              name: item.name,
            }
            return obj
          })
          resolve(this.accountOptions) // 关键代码
        })
      })
    },
    getCustomerList() {
      return new Promise((resolve) => {
        getCustomerList().then((res) => {
          this.customerOptions = res.data.map(item => {
            const obj = {
              code: item.code,
              name: item.name,
            }
            return obj
          })
          resolve(this.customerOptions)
        })
      })
    },
  }

标签:code,return,resolve,res,JS,item,loading,Promise
From: https://blog.csdn.net/qq_44170108/article/details/136643496

相关文章

  • 【Javascript】 Promise 对象(二)
    Promise.all()Promise.all()方法用于将多个Promise实例,包装成一个新的Promise实例。constp=Promise.all([p1,p2,p3]);上面代码中,Promise.all()方法接受一个数组作为参数,p1、p2、p3都是Promise实例,如果不是,就会先调用下面讲到的Promise.resolve方法,将参数转为Pr......
  • 2024-03-07-Nodejs(1-Node基础)
    1.初识Nodejs1.1思考为什么js可以在浏览器中被执行?浏览器中具备js解析引擎,其中chrome浏览器的v8引擎最优。为什么js可以操作DOM和BOM?每个浏览器都内置了DOM和BOM这样的api函数,因此浏览器中的js才可以调用它们。js运行环境运行环境是指代码正常运行所必须的环境。......
  • 2024-03-11-Nodejs(3-数据库与身份验证)
    3.数据库与身份验证3.1数据库基本概念数据库是用来组织、存储和管理数据的仓库;传统数据库中,数据结构分为数据库(database)、数据表(table)、数据行(tow)、字段(field)四大部分。3.2配置mysql模块安装mysql模块npminstallmysql建立连接constmysql=require('mysql')......
  • 2024-03-08-Nodejs(2-Express)
    2.Express​ 基于Node.js平台,快速、开放、极简的Web开发框架,Express是用于快速创建服务器的第三方模块。2.1基本使用#安装expressnpminstallexpressconstexpress=require("express");//创建web服务器constapp=express();//监听客户端的GET和POST......
  • 2024-03-11-Nodejs(4-大事件项目)
    4.大事件项目4.1项目初始化项目整体架构图大事件项目 |--- db | |---index.js |---router | |---user.js |---router_handler | |---user.js |---schema | |---user.js |---app.js |---config.js4.1.1创建项目新建api_server文件夹作为项目......
  • JS 列表 - 随笔
    代码:classJList{#arr=newArray();#capacity=10;#size=0;#extendRatio=2;constructor(){this.#arr=newArray(this.#capacity);}/***获取列表中元素的数量*@returns*/size(){re......
  • [数字华容道] Html+css+js 实现小游戏
    [数字华容道]Html+css+js实现小游戏效果图代码预览在线预览地址代码示例<!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <title>数字华容道</title> <style> h1{ text-align:center; } .box{ border:......
  • WPS JS生成透视表范例
    //生成透视表 Sheets.Add(undefined,undefined,undefined,undefined); ActiveSheet.Name="数据透视"; Sheets.Item("订单明细").Select(); varReport=ActiveSheet.Name; Range("A1:BO"+a).Select(); Selection.Activate();letpvt2cache=ActiveWork......
  • Flutter中JSON、List和Map之间的相互转换
    JSON转换为Map要将JSON字符串转换为Dart的Map对象,您可以使用Flutter的内置json库。这个库提供了jsonDecode()函数,可以将JSON字符串解析为Dart的Map对象import'dart:convert';StringjsonString='{"name":"John","age":30}';Map<String,dynamic>us......
  • vueusejs实现拖动
    https://www.vueusejs.com/guide/ npmi-D@vueuse/nuxt@vueuse/corepnpmadd-D@vueuse/nuxt@vueuse/core定义变量constcontentParent=ref();定义div<divclass="lg:flexoverflow-autoh-6/6w-[calc(100%+1rem)]"ref=&quo......