이런저런 프로그램을 실습차원에서 짜보고 있는데, 비동기 함수를 사용하는데 어려움이 있네요.
대부분의 함수들이 순차 처리가 아니다보니 툭하면 괄호안에 괄호가 수차례 겹치는 일이 다반사입니다.
또 성공 또는 실패의 결과에 따라 후속처리를 하다보면 괄호가 나무가지 퍼져 나가듯이 복잡해 지기도 하구요.
async 프레임웍을 쓰면 된다던가, setTimeout으로 실행시간을 조절하라는 글들이 보이기는 하는데, 비교적 초보자가 공부할만한 한글로 된 자료가 있는지 궁금합니다.
어차피 개인적으로 사용할 프로그램들이라 처리속도가 중요하지는 않은데, python같은 언어처럼 순차적으로 실행되는 방법이 있으면 좋겠네요. ^^
여담이지만 function(){() function(arg, arg, function){...}(arg).then(... 이런식의 문법은 정말 이해도 안가네요.
자바스크립트가 홈페이지에 꽃잎 날리는 용도로만 알았는데 말이죠. ㅎㅎ
이야기하신 then()은 promise 기반 직렬화 기법인데, 어느정도 써보시면 익숙해 집니다. 이 방법의 장점은 현재 브라우저에서도 사용 가능하다는 것. Q나 Bluebird 라이브러리 사용하시면 더 쉽습니다.
백엔드에서만 구동하실거고, NodeJS 버전 제약 없으신가요? 그러면 NodeJS 7 이상 쓰시면 Javascript ES7의 coroutine을 쓰실수 있습니다. 신세계를 경험하시게 될겁니다. Coroutine이란 async/await 를 사용하는 코딩기법입니다. 아래 글을 한번 보세요. 앞으론 모든 Javascript 코드가 Coroutine기반으로 바뀌게 될겁니다. 아래글 찬찬히 읽어보세욥.
http://proinlab.com/archives/2138
그리고 ES7 코드도 NodeJS의 Babel 라이브러리로 컴파일하면 브라우저에서 구동가능한 자바스크립트 생성이 가능합니다.
https://babeljs.io/ 그냥 여기서 코딩하는 것이 편할 것 같습니다... ^^
문자열 만들기가 정말 좋군요. 감사합니다.
감사합니다~ 잘 보겠습니다.
이 비디오가 괜찮아 보이네요...
답변해 주신 분들께 감사드립니다.
제가 node.js를 사용하는 가장 큰 이유는 인터넷 상의 정보 수집에 있습니다. python보다 훨씬 데이터를 긁어오는데 오류 저항력(?)이 쎈 것 같아서 갈아타고 있는데 , 순차적인 개발이 아니게 되니 어느 수준 이상으는 너무 복잡해 지더라구요. DB에 데이터를 넣을때도 sql문조차 for 문에서 setTimeout돌리는 것 만큼 이상하게 동작하기도 하고.. 여튼 감사합니다.
대세로는 promise 을 써얄거 같지만 async 는 사용하기 편합니다. 순차 실행을 원하시면 async.waterfall 이나 async.series 정도만 보시면 될 거 같네요. ㅎ