일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 엑셀드래그단축키
- AATCC
- 40HQ컨테이너40GP컨테이너차이
- 클린코드
- 봉제용어
- 엑셀자동서식
- 비슬론지퍼
- 암홀트롭
- 영어시간읽기
- 엑셀필터복사붙여넣기
- Armhole Drop
- 지연환가료
- 우레탄지퍼
- 웹API
- 와끼
- 미국영어연음
- MERN스택
- 자켓실측
- 필터링후복사붙여넣기
- 슈퍼코딩
- 헤이큐
- 나일론지퍼
- 미니마카
- 40HQ컨테이너
- WHATTIMEOFTHEDAY
- 비리짐
- TACKING
- 고급영어단어
- 요척합의
- 핸드캐리쿠리어차이점
- Today
- Total
CASSIE'S BLOG
if문은 콜백함수 안에... 본문
계속 에러
if문이 콜백함수 안에 들어가야한다.
JavaScript에서 if 문을 콜백 함수 안에 넣는 이유는 이 코드가 비동기적으로 동작하기 때문입니다.
readline 모듈을 사용하여 사용자의 입력을 받을 때, 이 입력은 비동기적으로 처리됩니다. 이는 사용자가 언제 입력을 완료할지 예측할 수 없다는 것을 의미합니다. 따라서 rl.on('line', ...) 이벤트 리스너는 사용자가 엔터 키를 누르는 즉시 실행되며, rl.on('close', ...) 이벤트 리스너는 사용자가 입력을 끝내고 프로그램을 종료할 때 실행됩니다.
만약 if 문을 콜백 함수 밖에 두면, 그것은 비동기적인 처리와 별개로 실행될 것이며, 입력이 아직 모두 완료되지 않았을 수 있습니다. 따라서 입력 처리를 보장하기 위해 if 문을 콜백 함수 내에 위치시키는 것이 중요합니다.
콜백 함수는 비동기 작업을 처리하는 데 사용되며, 비동기 작업이 완료된 후에 처리해야 하는 작업을 안전하게 보장하는 방법 중 하나입니다.
input.push(...parts); // 배열에 추가 input.push(parts) 이렇게 하면 틀려?
예, input.push(...parts);과 input.push(parts);는 서로 다른 동작을 합니다.
input.push(...parts);는 parts 배열의 각 요소를 input 배열에 개별적으로 추가합니다. 즉, parts 배열의 각 요소가 input 배열에 개별 항목으로 들어갑니다.
input.push(parts);는 parts 배열 자체를 input 배열에 하나의 요소로 추가합니다. 따라서 input 배열 안에 parts 배열이 포함된 형태로 저장됩니다.
원래 의도대로 여러 입력을 분리하여 input 배열에 추가하려면 input.push(...parts);를 사용해야 합니다.
User
const parts = line.split(' '); 이렇게 하면 그냥 문자 하나하나인데 ...을 안 쓰면 배열 자체로 들어가진다고?
ChatGPT
네, 정확히 맞습니다. const parts = line.split(' '); 코드는 line 문자열을 공백 문자로 분할하여 각 단어를 배열의 각 요소로 저장합니다. 따라서 ... (스프레드 연산자) 없이 사용하면 배열 자체가 parts에 저장되고, parts는 문자열이 아니라 문자열 배열이 됩니다.
예를 들어, line 문자열이 "Hello World"라면:
const parts = line.split(' ');를 사용하면 parts는 ["Hello", "World"]가 됩니다.
const [parts] = [line.split(' ')];를 사용하면 parts는 ["Hello", "World"]가 됩니다.
const ...parts = line.split(' ');를 사용하면 ...parts는 "Hello" 및 "World"가 됩니다.
따라서 input.push(...parts);를 사용하면 배열의 각 요소를 개별적으로 input 배열에 추가하게 됩니다.
어휴 join 메소드
- array: 배열 요소를 문자열로 결합할 배열입니다.
- separator: 선택적 매개변수로, 배열 요소를 결합할 때 각 요소 사이에 삽입할 문자열입니다. 이 문자열은 생략될 수 있으며, 생략하면 기본적으로 쉼표(,)가 사용됩니다.
예를 들어, 다음과 같이 배열 요소를 공백으로 연결할 수 있습니다:
join 메소드는 배열을 문자열로 변환하거나 원하는 구분자로 배열 요소를 연결할 때 유용하게 사용됩니다.
join 메소드를..어휴.. (' ') 이렇게 해서 안됐음... ('')이렇게 해야함.
'PROGRAMMING > 기타' 카테고리의 다른 글
구글링 하는 법 정리 (0) | 2023.10.28 |
---|---|
[코테] 'A'부터 Z까지 < > 부등호로 조건문 쓰는 방법 (0) | 2023.10.28 |
웹페이지 화면 gif 파일로 캡쳐하는 프로그램 (0) | 2023.10.22 |
이모지 "윈도우키 + . " (0) | 2023.10.14 |
vs code 단축키 (0) | 2023.10.14 |