inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실습 UI 개발로 배워보는 순수 javascript 와 VueJS 개발

폴더 구조

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

420

ryu sin

작성한 질문수 28

0

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

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

  1. MainController.js 파일의 시작 부분을 보면 다음과 같은 부분이 있습니다

    "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() 펑션 관련 질문입니다.

    아래 코드를 보면 궁금한 점이 두가지 있습니다.

    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]

}

javascript vuejs

답변 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

명쾌한 답변 감사합니다 .

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

0

ryu sin

명쾌한 답변 감사합니다 .

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

0

ryu sin

명쾌한 답변 감사합니다 .

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

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로 접근하면 변경가능하구요.

강사님, 브랜치명 어떻게 만드셨어요?

2

209

1

이미지 파일 업데이트가 안돼있는 거 같습니다

1

502

1

git사용법을 잘 모르겠습니다..

1

495

1

@event 질문입니다.

1

254

1

return 문자열이 여러줄은 어떻게 설정하나요?

1

645

2

탭뷰에서 이벤트를 받아서 메인컨트롤러에게 전달만해주는 방식도 괜찮나요?

1

257

1

ResultComponent.vue 에러?

1

251

1

선생님 안녕하세요!

0

247

1

return new Promise 와 return Promise.resolve

2

474

1

바닐라

1

320

1

실습 관련 질무

1

248

1

event.preventDefault() 문의

1

291

1

컴퍼넌트 질문이 있습니다.

0

210

1

return this에 대해서 (재업로드)

0

355

1

return this에 대해서 이해가 잘 되지 않아요

0

1175

1

강의 내용을 따라 했는데도 안되는 문제

1

309

2

크롬으로 로컬 띄었더니 에러가나네요

1

323

0

에러가 나네요

1

329

2

git checkout 중에 질문드립니다.

1

302

1

bindEvent 메소드를 왜추가하는지 궁금해서 질문드립니다.

2

576

1

안녕하세요 vue.js 처음 입문하는데 강사님 강의로 시작하게 되었습니다.

0

217

1

index 페이지에서 main.js 관련 질문입니다

1

203

1

학습내용 정리 관련 질문입니다!

0

179

1

lite-server로 구현해야하는 이유는 무엇인가요~?

1

522

2