• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

Tag 와 Promise, 그리고 add() 펑션에 관한 질문입니다.

18.11.15 18:42 작성 조회수 187

0

안녕하세요. 너무 좋은 강의 잘 듣고 있습니다.

공부하다가 막히는 부분이 있어서 질문 올립니다.

  1. MainController.js 파일의 시작 부분을 보면 다음과 같은 부분이 있습니다
  2. "const tag = '[MainController]' "

위와 같이 스트링으로 MainController 값을 집어 넣는 것을 처음 보는데, 이 부분은 어떤 명령어가 어떻게 처리하는 건가요?

마찬가지로, View.js 파일의 시작 부분에서도 "const tag = '[View]' " 부분이 있는데요, 이유와 쓰임세가 궁금합니다.

  1. KeywordModel.js 파일 안을 보면 Promise가 변수에 담기지 않고 바로 "new Promise" 식으로 구현이 되었습니다. 그럼 이 Promise의 instance는 무엇이 되는 건가요?

    이하는 코드 부분입니다.

    list() {

    return new Promise(res => { // 변수에다가 담지 않고 바로 new Promise를 했는데,

    // 이경우 그럼 Promise의 instance는무엇인가요?

    setTimeout(() => {

    res(this.data)

    }, 200)

    })

    }

    }

  2. HistoryModel.js 파일에서 add() 펑션 관련 질문입니다.
  3. 아래 코드를 보면 궁금한 점이 두가지 있습니다.

    a) const date = '12.31'

    이 부분은 이렇게 해 버리면 나중에 수정이 안되지 않나요?

    근데 바로 아래줄에 this.data =[{keyword, date}, ...this.data] 이런식으로 나오면

    저 자료를 계속 활용한다는 이야기인데.

    굳이 const 와 스트링 조합으로 한 이유가 있나요?

b) some(item=> item.keyword == keyword)) 에서 item이 뜻하는게 뭔지 궁금합니다.

add(keyword = '') {

keyword = keyword.trim()

if (!keyword) return

if (this.data.some(item => item.keyword === keyword)) {

this.remove(keyword)

}

const date = '12.31'

this.data = [{keyword, date}, ...this.data]

}

답변 7

·

답변을 작성해보세요.

2

질문이 여러개라 하나씩 답변 드리겠습니다.

질문1:

const tag = '[MainController]'

이유와 쓰임세가 궁금

답변1:

개발할때 디버깅 용으로 사용하는 태그입니다.

예를들어 console.log(tag, 'hello world')로 로그를 남기면

"[MainController] hellow world" 문자열이 개발자 콘솔에 남는거죠.

1

질문2:

Promise의 instance는 무엇이 되는 건가요?

답변2:

프로미스 객체가 반환되는 것이죠

'그게 그말 아닌가요?' 라고 하실것 같네요.

list().then(fn).catch(fn) 형태로 사용할수 있습니다.

0

ryu sin님의 프로필

ryu sin

질문자

2018.11.16

명쾌한 답변 감사합니다 .

오늘도 좋은 하루 되세요 : )

0

ryu sin님의 프로필

ryu sin

질문자

2018.11.16

명쾌한 답변 감사합니다 .

오늘도 좋은 하루 되세요 : )

0

ryu sin님의 프로필

ryu sin

질문자

2018.11.16

명쾌한 답변 감사합니다 .

오늘도 좋은 하루 되세요 : )

0

질문4:

some(item=> item.keyword == keyword)) 에서 item이 뜻하는게 뭔지 궁금합니다.

답변4:

this.data.some(...) 으로 실행하는 배열 함수입니다.

data 배열 데이터를 보면 답이 나오는데요

data: [

{ keyword: '검색기록2', date: '12.03' },

{ keyword: '검색기록1', date: '12.02'},

{ keyword: '검색기록0', date: '12.01' },

],

배열 요소인 {keyword: ' ', date: ' '} 가 item 변수로 들어옵니다.

0

질문3:

const date = '12.31'

이 부분은 이렇게 해 버리면 나중에 수정이 안되지 않나요?

근데 바로 아래줄에 this.data =[{keyword, date}, …this.data] 이런식으로 나오면

답변3:

상수 date는 아래 구문에서 객체의 값으로 사용됩니다.

따라서 this.data로 접근하면 변경가능하구요.