Part II - fs module # 4

이건우·2021년 4월 26일
0

Asynchronous & Promise

목록 보기
9/13

문제

  • Promise 형태로 리턴되어야 합니다
  • Promise.all을 사용해서 풀어야 합니다
  • user1.json의 내용과 user2.json 내용을 합쳐 객체로 리턴되어야 합니다

내 접근

처음에 엠디엔

const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
  setTimeout(resolve, 100, 'foo');
});

이것 부분만 보고 어떻게 접근해줘야할지 매우 골머리 썩은듯 싶다. 하지만 내가 문서를 끝까지 유심히 잘 살펴보지않은 참극이었다.. 생각외로 엄청나게 간단한 문제였다. 정말 짧게 풀었다.

Promise.all([promise1, promise2, promise3]).then((values) => {
  console.log(values);
});

위 코드가 문제의 아랫부분.. 덕분에 해답의 실마리를 얼떨결에 찾은듯 싶다.

코드의 결과 & 정확한 코드

처음으로 코드결과와 정확한 코드를 적어본다.

const readAllUsers = () => {
  return Promise.all([
    getDataFromFilePromise(user1Path).then(data =>JSON.parse(data)),
    getDataFromFilePromise(user2Path).then(data =>JSON.parse(data))
  ]).then((data) =>{
    console.log(data)
    return data
  });
  }

위와같다. 사실 완전 엠디엔에서의 Promise.all을 완전 베끼다 싶이했다.
그리고 이건 기타 다른코드이다. (동기에게 받았다.)

  const readAllUsers = () => {
    // TODO: Promise.all을 이용해 작성합니다
    
    
    const a = getDataFromFilePromise(user1Path).then(data => JSON.parse(data)) // then을 통해 비동기처리가 되었음. 
    // getDataFromFilePromise(user1Path)의 결과값은 promise 객체. 바로 JSON 객체로 
    
    const b = getDataFromFilePromise(user2Path).then(data => JSON.parse(data))
    
    return Promise.all([a,b]) 
    } 
profile
내가 느낌만알고 한줄도 설명할줄 모른다면 '모르는 것'이다.

0개의 댓글