2012-01-15 3 views
1

비동기 성은 node.js의 절반에 불과하다는 것을 알고 있습니다. 그러나 어떤 상황에서는이 프로그래밍 패턴이 너무 과도하고 어려울 수 있습니다. 예를 들어, 사용자 입력을 받아서이를 사용하여 MySQL 행을 생성하고 저장하는 스크립트를 작성하려면 어떻게해야할까요? 프로그램의 모든 작은 단계에 대해 별도의 기능을 생성 한 다음 서로를 연속적으로 호출하게하는 것은 정말 짜증이납니다.node.js에서 동시성을 강요하는 방법은 무엇입니까?

그런 상황을 어떻게 대처해야합니까? step을 사용해 보았지만 고전적인 방식 (function foo() {/* Bar */})으로 함수를 선언해야하기 때문에 coffee 스크립트에서 작동하지 않습니다. 대신에 커피 스크립트는 익명의 함수를 생성하고 로컬 변수에 할당합니다. (var foo = function() {/* Bar */})

콜백을 대기하는 프로세스를 가져 오는 방법을 혼합하는 것이 더 간단 할 것이라고 생각합니다. 비동기성에 대한 논쟁은 제쳐 놓고, 어떻게해야할까요?

답변

2

http://search.npmjs.org/ 도서관은 노드 커뮤니티 내에서 얼마나 명성에 대한 통찰력을 제공에 https://github.com/caolan/async

"대부분 의존에"패키지의 목록을보십시오. async는 7 위 (207 패키지에 의존) ...

underscore 448 
coffee-script 341 
request  279 
express  268 
optimist  228 
connect  207 
async   207 
colors  199 
uglify-js  146 
socket.io  140 
redis   128 
jade   117 
jsdom   102 
commander  101 
mime   96 

CoffeeScript로 "작동하지 않는"라이브러리를 피하십시오. 그들은 말썽이다.

+0

'async'는 내가 느려졌던 작업을 단순화하기위한 많은 것들을 제공합니다. 추천 주셔서 감사합니다! – Hubro

0

어떤 일을 하느냐에 따라 다르지만 Node.js의 핵심 메소드 중 일부는 readFileSync과 같은 동기 버전이 있습니다.

동기 버전이없는 메소드를 다루는 경우 async.js과 같은 단계의 대안을 조사해야합니다.

관련 문제