앞의 4번문제를 풀고나서, 앞의 문제내용을 이용하여 풀게된다면 그 방법이 통할법 같단 생각이들어
앞전의 코드를 그대로 복사해왔다.
그리고, 항상 정의 결과 내용에서
let value = await promise;
모습이 눈에 띄었다. 그래서 나도 특정값을 await과함께 같이 할당하였다.
const readAllUsersAsyncAwait = async ()=> {
let result = [];
let a = await getDataFromFilePromise(user1Path).then(data =>JSON.parse(data))
let b = await getDataFromFilePromise(user2Path).then(data =>JSON.parse(data))
result.push(a,b)
return result;
}
뭔가 엉뚱하고 이상하게 푼듯싶다. 오히려 이것은 개념정리를 하고 넘어가야할 문제다.
너무 얼렁뚱땅..
async function 함수명(){
await 비동기_처리_메서드명()
}
함수앞에 async라는 예약어를 붙이고 함수내부 로직중 http 통신을 하는 비동기
처리 코드앞에 await을 붙인다. 비동기 처리 메서드가 꼭 '프로미스 객체'를 반환해야 await이 의도된대로 작동이됨.
일반적으로 await의 대상이 되는 비동기 처리 코드는 Axios 등 프로미스를 반환하는 API 호출 함수이다.
Promise는 자바스크립트에서 '비동기 처리를 위한 객체' 이다.
즉, async & await은 비동기 처리가 가능한 메서드이다.
그리고 매우 간단하며, '프로미스객체'를 반환해야 의도된대로 작동이된다.
그리고 비동기적으로 사고하지 않아도된다. 훌륭한 가독성.
찾아본바 개념은 매우간단했고, 왜 어떻게 흘러가는지 모른다면 비동기를 다시봐야 하는것이 옳다고 생가한다.