-
Node.js 비동기 처리 방식 - 익명함수, 화살표 함수개발/React Native 2019. 6. 8. 11:02
Node.js는 효율적인 자원운용을 위해 비동기 처리를 기본으로 함으로 동기 처리를 기본으로 하는 여타 다른 프레임워크와는 함수의 사용 방식에 조금 차이가 있습니다.
아래 코드에서 상단이 일반적인 파일 로드를 위한 동기적 파일 로드 함수의 사용 예제이며,
하단이 비동기적 파일 로드 방식입니다. readFile 함수 호출 시, readHandler 함수를 인자로 전달하여 파일 로드가 완료되면 readHandler가 호출되는 방식입니다.
const fs = requre('fs') // --- 동기적 파일 로드 -- const data = fs.readFileSync('test.txt', 'utf-8') consol.log(data) // --- 비동기적 파일 로드 -- fs.readFile('test.txt', 'utf-8', readHandler) function readHandler (err, data) { console.log(data) }
코드 간소화를 위해 함수를 따로 정의하지 않는 익명함수를 활용하면 아래와 같은 코드로 작성할 수 있습니다.
익명 함수를 활용하면 함수의 매개 변수 내에 함수 객체를 정의할 수 있음으로 동기처리와 같이 코드를 짧게 작성할 수 있습니다.
const fs = requre('fs') // --- 비동기적 파일 로드 -- fs.readFile('test.txt', 'utf-8', readHandler (err, data) { console.log(data) })
ECMAScript2015에서는 화살표 함수가 추가되어 아래와 같이 코드를 더욱 간소화 할 수 있다.
const fs = requre('fs') // --- 비동기적 파일 로드 -- fs.readFile('test.txt', 'utf-8', (err, data) => { console.log(data) })
위 내용을 정리하면 아래와 같다.
1. Node.js는 자원의 효율적인 운영을 위해 비동기 함수 사용을 권장한다.
2. 비동기함수는 동기함수에 비해 코드가 길고 복잡하다.
3. 익명함수 + 화살표 함수를 활용하면 비동기 함수도 동기 함수만큼 코드 간소화가 가능하다.
2019.06.15 추가 내용
React 관련 코드를 보면 화살표 함수를 이용하여 콜백함수를 정의하는 부분이 자주 등장하다는데
함수 정의 부분에서 소괄호('()')를 사용하는 부분이 있고 중괄호('{}')를 사용하는 부분이 나타난다.
ECMAScript2015에서는 두가지 방식을 모두 지원하며, 기본적으로 화살표 함수도 함수임으로
return이 정의되어야 하며 기본 스타일은 중괄호('{}')를 지정하고 return 을 정의하는것이다.
하지만 경우에 따라 return이 불필요한 화살표 함수가 있으며 이 경우를 위해 소괄호('()')로 함수를 정의할 수 있으며, 이 경우에는 return을 정의하지 않더라도 error가 발생하지 않는다.
https://okky.kr/article/516271?note=1548764
'개발 > React Native' 카테고리의 다른 글
(React Native) Expo-Facebook/Google 계정 연동 (0) 2019.07.07 Node.js 의 모듈 가져오기 (Import/Export) (0) 2019.06.08 리액트 네이티브 - 프로젝트 생성 (Expo) (0) 2019.05.07 리액트 네이티브 - 프로젝트 생성 (React-Native init) (0) 2019.05.06 리액트 네이티브 - 개발환경 구축 (Windows) (0) 2019.05.06