zoukankan      html  css  js  c++  java
  • 中间件-js并发加载函数

    /*
    并发加载函数
    id:唯一值
    syncFunc:加载函数
     */
    const _map={}
    async function conCurentLoad (id,syncFunc) {
      //兼容并发加载的情况
      if(!_map[id]){
        _map[id]=[];
        const res = await syncFunc();
        if(_map[id].length>0){
          _map[id].forEach(function (callback) {
            callback(res)
          })
        }
        delete _map[id]
        return res;
      }else{
        return new Promise(function (resolve) {
          _map[id].push(resolve)
        });
      }
    }
    //并发加载demo
    async function init(){
      const midajax= function(){
        return new Promise(function (resolve,reject) {
          setTimeout(function () {
            resolve(21)
          },3000)
        })
      }
      conCurentLoad(1,midajax).then(function (res) {
        console.log(res)
      })
      conCurentLoad(1,midajax).then(function (res) {
        console.log(res)
      })
    }
    init()
    

      

  • 相关阅读:
    vue
    vue
    vue 中使用style(样式)
    vue 中使用class(样式)
    第17课
    第16课
    第15课
    第14课
    第13课
    第12课
  • 原文地址:https://www.cnblogs.com/caoke/p/13970982.html
Copyright © 2011-2022 走看看