2017-10-27 5 views
0

함수 내에서 두 개의 서비스 호출 응답을 캡처하려고합니다. 비동기 및 기다림이이 목적을 해결하고 아래에서 시도했음을 알게되었습니다. 여기 내부 비동기 함수 예 - 나는 사용자, 회사 종점 및 콘솔 로그에 전화를 걸고 있습니다. 완벽하지만, 비동기 함수를 호출하여 동일한 값을 검색하는 동안 Promise Pending이 제공됩니다. 나는 두 가지 옵션을 시도했다. 1. 단순히 비동기 함수를 호출함으로써 - Promise Pending 2.을주는 것으로 접두어를 붙였다. -await는 예약어이다. 모든 async 기능 항상 약속을 반환합니다비동기 함수에서 반환 값 가져 오기

const service = { 
     getUsers:() => axios.get(`http://localhost:3000/users`), 
     getCompanies:() => axios.get('http://localhost:3000/companies') 
     }; 

     let ex = async() => { 
     let users = {}; 
     let companies = {}; 
     try { 
      users = await service.getUsers() 
      companies = await service.getCompanies() 

      console.log('Example ', { 
      users: users.data, 
      companies: companies.data 
      }) 

     } catch (err) { 
      console.log(err); 
     } 
     return [{ users, companies}]; 
     }; 
     //let resp = await ex(); - giving await is a reserved word 
     // let resp = ex(); - giving Promise is pending.. 
     console.log(resp); 
+0

신경 쓰지 마라. 비동기 함수에서 Promise가 반환되고 .then 또는 .catch.로 다시 확인해야합니다. –

답변

0

날이의 응답을 캡처하는 방법을 알려 주시기 바랍니다

.... 반환하지 않으면 함수는 undefined에 대한 약속을 반환합니다. 돌아 오는 것은 await으로 전화하거나 then으로 전화하여 약속 안의 값에 액세스하십시오.

resp.then(console.log)