Hello, Android!

Promise 본문

Node

Promise

lwndnjs93 2021. 2. 1. 21:12

자바스크립트에서는 대부분의 작업이 비동기로 처리된다

작업을 요청하면서 콜백 함수를 등록하면 결과를 나중에 콜백 함수를 통해 알려준다

한가지 작업의 결과를 받은 뒤, 순차적으로 다음 작업을 진행하고자 할때 콜백 함수를 사용한다

이런 콜백 함수가 점점 쌓이고 쌓여 콜백 지옥에 빠져 이를 해결하고자 promise를 사용한다

 

promise는 이름 그대로 약속 이다 지금 당장 결과를 알려줄수는 없지만

나중에 처리 결과 또는 이상이 생기면 알려준다

promise함수는 호출시 new Promise를 사용하여 promise 객체를 생성하여 반환한다

콜백 함수의 매개변수로 resolve와 reject를 받는다

promise의 결과가 성공일때는 resolve 함수를 통해 전달하고

실패했을 경우에는 reject함수를 통해 전달한다

 

이 결과값은 promise의 than, catch에서 받게 된다

then은 성공했을때 resolve의 인자를 받게되며

catch에서는 실패했을때 reject의 인자를 받게된다

finally는 경우 성공 실패와 상관없이 어떠한 경우에도 실행이 된다

 

앞서 promise는 이름 그대로 당장은 아니지만, 나중에 처리 결과를 알려준다고 하였던 말 그대로

promise객체에서 작업 실행은 하되, 그 결과는 나중에 then, catch를 붙였을때 받게 된다

또한 이와같이 then에서 새로운 than, catch를 붙여서 사용할수 있다

message에서 다시 promise객체를 만들어 resolve에 그대로 받은 결과를 그대로 넘겨준다

message2에서는 message에서 받은 결과를 받아 로그에 출력한다

이때 message에서 다시 새로운 promise를 실행하지만 catch는 이미 존재하는 하나로 처리가 가능하다

 

lwndnjs93.tistory.com/104?category=997600

 

파일 입출력

파일에 대하여 읽기 쓰기등의 작업은 fs 모듈을 활용한다 파일이 있는지 체크, 생성, 이름 변경, 삭제, 읽기 경로를 만들거나 삭제도 가능하다 - 파일 존재 체크 fs모듈의 existsSync함수의 매개변수

lwndnjs93.tistory.com

이와같이 파일 입출력처럼 콜백함수가 많이 사용될때 promise를 사용하게 되면

더욱 가독성 좋은 코드를 작성할수 있다

'Node' 카테고리의 다른 글

버퍼와 스트림  (0) 2021.02.02
async / await  (0) 2021.02.01
파일 입출력  (0) 2021.01.31
자식 프로세스  (0) 2021.01.30
thread  (0) 2021.01.30