Estoy tratando de obtener los datos de respuesta de 3 API que dependen entre sí. cuando llamo a cada API externa, la respuesta tiene una matriz de API externas, ya que necesito las 3 respuestas de API externas. Aquí está el código:
const options = { JSON: true, method: 'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8', "Authorization": process.env.authID, }, body: {}, uri: '' }; app.post('/sync', async (req, res) => { try { let getFirstAPI = Object.assign({}, options); getFirstAPI.uri = 'https://abcde'; // first API request(getFirstAPI, function (err, httpResponse, body) { Promise.all(body.projects.map((prct) => getVuln(prct))).then(rs => { res.JSON({ message: rs }); }); }); } }); async function getVuln(prodId) { try { let getSecondAPI= Object.assign({}, options); getSecondAPI.uri = 'abcd' + prodId.id + '/abc'; //Second API return await new Promise((resolve, reject) => { request(getSecondAPI, function (err, httpResponse, body) { let final = { products: [], dataList: [] } final.products.push({ product_id: prodId.id, product_name: prodId.abc, product_ver: prodId.wdc }) body.issues.forEach(csa => { final.dataList.push({ product_id: prodId.id, version: csa.Versions, name: csa.Name, pathJsonValue:await getPathfun(csa.link) //Here i am getting error "SyntaxError: Unexpected identifier" }); }); resolve(final); }); }) } } function getPathfun(urlStr) { let getPathUrl = Object.assign({}, options); getPathUrl.url = urlStr; return new Promise((resolve, reject) => { request(getPathUrl, function (err, httpResponse, body) { resolve(body); }); }); } en "pathJsonValue" recibo un error al ejecutar el código, si elimino la espera, entonces "pathJsonValue" está vacío. He adjuntado la imagen de error a continuación. por favor ayudame con este problema. 
request(getSecondAPI, function (err, httpResponse, body) {La devolución de llamada debe ser una función ASYNC para tener la posibilidad de usar la palabra clave 'aguardar' dentro de ella.