JSFiddle - React, Tailwind, and code Playground

JavaScript

// func1, func2 を並列処理しつつ、結果は順次処理していく
$(function() {

    // 結果は順次処理
    const wrap = async function(func) {
      const res = await func();
      console.log(res); 
      return res;
    }
    
    // func1, func2 を並列処理
    console.log("並列処理開始");
    Promise.all([
      wrap(()=>func1('apple')), // できました!
      wrap( func2 )
    ]).then(res=>{
        console.log(res);
        console.log("並列処理すべて終了");
    });

    // AJAXでデータを取得
    function func1(str=''){
      var def = new $.Deferred();
      console.log('start func1')
      setTimeout(function(){
          const ajaxResponse1 = [{name:str+'太郎'},{nane:str+'次郎'}];
          def.resolve( ajaxResponse1 );
      },1000);
      return def.promise();  
    }

    // AJAXでデータを取得
    function func2(){
      var def = new $.Deferred();
      console.log('start func2');
      setTimeout(function(){
          const ajaxResponse2 = [{name:'花子'},{nane:'良子'}];
          def.resolve( ajaxResponse2 );
      },2000);
      return def.promise();   
    }

});