JS中实现多个异步请求的例子

例子1

在vue-router 的 beforeEach 中实现如下异步逻辑:

beforeEach 开始 -> pinia init -> beforeEach 完成

pinia 中方法定义

export const mainStore = defineStore('mainPinia', () => {

    let hasInit = ref(false);
    let postTypes = ref(null) as any;
    let departments = ref(null) as any;

    const initPinia =  async ()  => {
      console.log("init in main pinia")

      if(hasInit.value){  
        return;
      }

      const res = await axios.all([
          postTypesListApi(),
          optionsApi()]
      )

      postTypes.value = res[0];
      departments.value = res[1];
      hasInit.value = true;
    }

    return {
      postTypes,
      departments,
      initPinia
    }
}

vue-router 的方法实现

    store.dispatch('profiles/getUserInfo')
      .then(async (r:any) => {
              const res = await mainStoreApp.initPinia();
        }) 
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容