forEach is not suitable for receiving such callback functions. The 
  async  function returns  Promise , so you can use  map  to get an array of Promise. You can  promises= paramArr.map (async (val, i) = >. . 
 then use  await Promise.all (promises) . 
< hr >
 I looked at your code again,  data.push ({'asides: result [item] .a, 'baked: result [item] .b}); The order of  here is uncertain, so there will be a problem with the order of data. You can either use the  for  loop to abandon concurrent requests, or you can finally sort  data  to get the same order as the original (index  I  is stored in the index  I  every time you push). 
< hr >
 of course, if  data.push  does not process immediately, but lets  Promise  return the result, then  Promise.all  is ordered and then stored in data. 
const { EventEmitter } = require('events');
var event = new EventEmitter();
let paramArr = JSON.parse(paramArray);
let data = [];
paramArr.forEach(async (val, i) => {
    let easywlb = dasign
        ? tqyybm
        : tqyybm.substr(0, 2) === '02'
            ? '12' + tqyybm.substr(2, 4)
            : '11' + tqyybm.substr(2, 4);
    let param = {
        /* '' */
    };
    await this.post('', param);
    let result = this.get('data');
    for (let item in result) {
        data.push({ a: result[item].a, b: result[item].b });
    }
    event.emit('loaded');
});
//data[]
var count = 0;
event.on('loaded', function() {
    if (PPcount === paramArr.length) {
        event.emit('finish');
    }
});
event.on('finish', function() {
    ctx.body = { data, success: this.success() };
})
 event monitoring style 
 const paramArr = JSON.parse(paramArray).map(async(val)=>{
    let easywlb = dasign ? tqyybm : (tqyybm.substr(0, 2) === '02' ? ('12' + tqyybm.substr(2, 4)) : ('11' + tqyybm.substr(2, 4)));
    let param = { '' };
    await this.post('', param);
    let result = this.get('data');
    
    const map = [];
    for (let item in result) {
      map.push({ 'a': result[item].a, 'b': result[item].b });
    }
    return map;
});
const data = await Promise.all(paramArr);
 
 Don't use forEach, to directly for the loop, and it's not necessary. Asnyc/await, since the this.post method is promise, just call promise directly 
let paramArr = JSON.parse(paramArray)
let data = [];
let promiseArr = paramArr.map(val=>{
    let easywlb = dasign ? tqyybm : (tqyybm.substr(0, 2) === '02' ? ('12' + tqyybm.substr(2, 4)) : ('11' + tqyybm.substr(2, 4)));
    let param = { '' };
    return this.post('', param).then(()=>{
        let result = this.get('data');
        return result.map(n=>return {a:n.a, b:n.b}))
    })
});
promise.all(promiseArr)
    .then((resultArr)=>ctx.body = { data: data.reduce((p,c)=>[p.concat(c), p][1],[]), success: this.success() })
    .catch(err=>console.log(err))