-
카테고리
-
세부 분야
프론트엔드
-
해결 여부
미해결
Tag 와 Promise, 그리고 add() 펑션에 관한 질문입니다.
18.11.15 18:42 작성 조회수 187
0
안녕하세요. 너무 좋은 강의 잘 듣고 있습니다.
공부하다가 막히는 부분이 있어서 질문 올립니다.
- MainController.js 파일의 시작 부분을 보면 다음과 같은 부분이 있습니다
"const tag = '[MainController]' "
위와 같이 스트링으로 MainController 값을 집어 넣는 것을 처음 보는데, 이 부분은 어떤 명령어가 어떻게 처리하는 건가요?
마찬가지로, View.js 파일의 시작 부분에서도 "const tag = '[View]' " 부분이 있는데요, 이유와 쓰임세가 궁금합니다.
- HistoryModel.js 파일에서 add() 펑션 관련 질문입니다.
KeywordModel.js 파일 안을 보면 Promise가 변수에 담기지 않고 바로 "new Promise" 식으로 구현이 되었습니다. 그럼 이 Promise의 instance는 무엇이 되는 건가요?
이하는 코드 부분입니다.
list() {return new Promise(res => { // 변수에다가 담지 않고 바로 new Promise를 했는데,
// 이경우 그럼 Promise의 instance는무엇인가요?
setTimeout(() => {
res(this.data)
}, 200)
})
}
}
아래 코드를 보면 궁금한 점이 두가지 있습니다.
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]
}
답변을 작성해보세요.
2
김정환
지식공유자2018.11.16
질문이 여러개라 하나씩 답변 드리겠습니다.
질문1:
const tag = '[MainController]'
이유와 쓰임세가 궁금
답변1:
개발할때 디버깅 용으로 사용하는 태그입니다.
예를들어 console.log(tag, 'hello world')로 로그를 남기면
"[MainController] hellow world" 문자열이 개발자 콘솔에 남는거죠.
1
김정환
지식공유자2018.11.16
질문2:
Promise의 instance는 무엇이 되는 건가요?
답변2:
프로미스 객체가 반환되는 것이죠
'그게 그말 아닌가요?' 라고 하실것 같네요.
list().then(fn).catch(fn) 형태로 사용할수 있습니다.
0
0
0
0
김정환
지식공유자2018.11.16
질문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
김정환
지식공유자2018.11.16
질문3:
const date = '12.31'
이 부분은 이렇게 해 버리면 나중에 수정이 안되지 않나요?
근데 바로 아래줄에 this.data =[{keyword, date}, …this.data] 이런식으로 나오면
답변3:
상수 date는 아래 구문에서 객체의 값으로 사용됩니다.
따라서 this.data로 접근하면 변경가능하구요.
답변 7