Part II - fs module # 3

이건우·2021년 4월 26일
0

Asynchronous & Promise

목록 보기
8/13

문제

  • 체이닝의 결과가 Promise 형태로 리턴되어야 합니다
  • user1.json의 내용과 user2.json 내용을 합쳐 객체로 리턴되어야 합니다
  • fs module을 직접 사용하지 말고, getDataFromFilePromise을 두 번 사용해야 합니다
  • Promise.all 또는 async/await을 사용하지 않고 풀어보세요'

내 접근

접근법이 매우 다양했었다. 일단은 기억나는것을 적는다면 ,
https://joshua1988.github.io/web-development/javascript/promise-for-beginners/

이곳을 참조했었고, 콘솔로그도 돌리기 매우 어려웠었다. 과연 콘솔은 잘 돌아가는것일까 ?

코드의 결과

여러번의 개보수 결과 원래 시도 접근에 가까웠던 원형의 코드는 없어져 버렸다.
사실 이것을 실패한접근위주로 적을까 성공한 접근을 적을까 고민하다가 일단 실패한 접근을 먼저 적어보고자 한다.

정확한 코드

const readAllUsersChaining = () => {
  // TODO: 여러개의 Promise를 then으로 연결하여 작성합니다
   let a ;
   return getDataFromFilePromise(user1Path)
   .then(data =>{
     a = data ;
     return getDataFromFilePromise(user2Path)
   })
   .then(data=>{
     return JSON.parse(`[${a},${data}]`)
   })

일단 내가 작성했던 정확한 코드를 넣고자한다. 나는 전역변수를 선언하여, user1path의 본 데이터를 가질수 있도록 하는것이 내 코드의 핵심이다.

그리고 이곳에 내가 다시 접근했던것을 적자면,
문제 위에선 getDataFromPromise를 이용하라는 힌트가 주어졌는데, 사실 이 함수는 다른 .js 에서 구현이된 함수였다. 그래서 그것을 그대로 가져다 쓰면 그만이었다.

문제를 풀게될때 전체적으로, 무엇이 주어져있는지 유심히 봐야겠다. 마치
요리를 하게될때 무슨재료가있는지 파악하고 요리를 하는것 처럼 나에게도 그런 전체적인 시야가 필요하다. 그래도 전역변수를 생성하여 문제를 풀 접근을 할수 있게되어 너무 뿌듯하고 좋았다.

profile
내가 느낌만알고 한줄도 설명할줄 모른다면 '모르는 것'이다.

0개의 댓글