当前位置:首页 » 《关注互联网》 » 正文

在Vue项目中,等待所有请求(方法)完成以后执行操作_想搞全栈的前端

27 人参与  2021年09月10日 07:23  分类 : 《关注互联网》  评论

点击全文阅读


使用场景

比如一个弹窗需要请求表格跟树组件的数据需要发两个请求,这时我们需要等两个请求完成拿到数据后再去打开弹窗。

多个请求

axios.all([axios.post("/test1"),axios.post("/test2")]).then((test1,test2)=>{
    console.log('两个接口都执行完毕啦')
})

// 或者这样
function getUserAccount() {
  return axios.get('/user/12345');
}

function getUserPermissions() {
  return axios.get('/user/12345/permissions');
}

axios.all([getUserAccount(), getUserPermissions()])
  .then(axios.spread(function (acct, perms) {
    // 两个请求现在都执行完成
  }));

像我这里接口都封装了的话可以这样写

 axios.all([queryMaterialByCode({}).then((res) => {
     this.tableDataProp = res.data;
 }),queryMaterialCatalog().then((res) => {
     this.dataTreeProp = res.data;
 })]).then(()=>{
     this.batchShow = true;// 打开弹窗
 })

多个方法

function fun1(){
    return new Promise((resolve, reject) => {
        /* 你的逻辑代码 */
         resolve('随便什么数据1')
        console.log("1");
    });
},
function fun2(){
    return new Promise((resolve, reject) => {
        /* 你的逻辑代码 */
         resolve('随便什么数据2')
        console.log("2");
    });
},
function fun3(){
    return new Promise((resolve, reject) => {
        /* 你的逻辑代码 */
         resolve('随便什么数据3')
        console.log("3");
    });
},
/* 调用 */
function run(){
    Promise.all([
        this.fun1(),
        this.fun2(),
        this.fun3()
    ]).then(res => {
        /* 你的逻辑代码 */
        console.log("run");
    })
}

点击全文阅读


本文链接:http://zhangshiyu.com/post/27440.html

请求  数据  逻辑  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1