node.js 비동기 예제

이러한 단순성으로 인해 예제에 사용된 모든 기능을 promisified해야 합니다. promise를 반환하기 위해 getRoles 메서드를 업데이트하는 방법을 살펴보겠습니다. 이는 일반적인 비동기 프로그래밍 과제이며, 비동기 호출을 처리하는 방법은 대체로 앱을 만들거나 중단하며 확장하여 전체 시작을 수행할 수 있습니다. 그리고 다음은 유사하지만 동등한 비동기 예는 아닙니다: 확장에 의한 JavaScript 및 노드는 단일 스레드이고 노드는 비차단 I/O 및 비동기 이벤트 기반 모델을 사용합니다. I/O를 차단하지 마십시오. 루비의 이벤트 머신이나 파이썬의 트위스트와 매우 유사하지만 노드는 이벤트 루프를 라이브러리가 아닌 언어 구문으로 제공합니다. 이 자습서에서는 두 가지 중요한 프로그래밍 모델 비동기 모델과 콜백에 대해 설명했습니다. 나중에 우리는 또 다른 핵심 모델 이벤트 방사에 대해 설명합니다 코드의 첫 번째 블록은 간단 보인다, readFileSync() 전체 파일을 읽고 메모리에 저장한 다음 콘솔에서 데이터와 메시지를 인쇄로 이동합니다 (출력 참조). 이것은 동기 버전이며 파일 읽기가 완료 될 때까지 모든 것이 일시 중지됩니다.

그러나 코드의 두 번째 블록은 비동기 버전이지만 복잡해 보입니다. 여기서 시스템은 다른 작업을 수행할 준비가 되어 있습니다 – 대신 파일 읽기가 끝나면 콜백 함수가 호출됩니다. 출력을 참조하면 먼저 마지막 명령을 실행하고 “파일 읽기…”를 인쇄합니다. 그런 다음 파일의 내용을 인쇄합니다. 이 게시물에서는 Node.js 비동기 작업을 처리할 때 사용할 수 있는 도구와 기술( async.js, 약속, 생성기 및 비동기 함수)을 다룹니다. I/O를 처리할 때 피해야 할 몇 가지 패턴이 있습니다. 예를 들어 노드 응용 프로그램의 예로 살펴보겠습니다. 코드에 userDetails라는 전역 변수가 있고 초기화하려고 생각했다고 가정합니다.

Github에서 Github 사용자의 세부 정보를 가져오고 해당 변수를 로드해야 합니다. 그런 다음 약속으로 우리는 이것을 할 수 있습니다. 위의 예에서 fs.unlinkSync()는 실제로 읽기 전에 file.md 삭제하는 fs.readFile() 전에 실행될 수 있습니다. 완전히 비 차단 및 올바른 순서로 실행 을 보장이 작성하는 더 좋은 방법은 다음과 같습니다 : 실제로, 이전 예제는 다음과 같이 다시 작성 할 수 있습니다 : 첫 번째 예는 두 번째보다 간단하지만 두 번째의 단점이있습니다 전체 파일을 읽을 때까지 추가 자바 스크립트의 실행을 차단하는 라인. 동기 버전에서 오류가 발생하면 오류가 발생하거나 프로세스가 충돌합니다. 비동기 버전에서는 그림과 같이 오류를 throw할지 여부를 결정하는 것은 작성자의 결정입니다. Node.js 표준 라이브러리의 모든 I/O 메서드는 비차단 버전인 비동기 버전을 제공하고 콜백 함수를 수락합니다. 일부 메서드에는 Sync로 끝나는 이름이 있는 차단 대응도 있습니다. 내가 실행하는 한 페이지 코드는 괜찮습니다, 예제와 매우 유사, 잘 작동, 드레인은 correcltly 호출됩니다 . 그래서 나는 그것을 기다릴 수 있도록 비동기 함수에 메인 코드 (queue.push in a loop)를 넣었습니다.

Node.js는 비동기 플랫폼인 콜백을 사용하며 데이터베이스 쿼리, 파일 I/O처럼 기다릴 필요가 없습니다. 콜백 함수는 지정된 작업이 완료될 때 호출됩니다. 이렇게 하면 차단이 방지되고 그 동안 다른 코드를 실행할 수 있습니다. 다음 예제 를 참조하십시오 : 비동기 함수는 자바 스크립트에서 비동기 프로그래밍의 진화의 다음 논리적 단계입니다.

Aquesta entrada ha esta publicada en General. Afegeix a les adreces d'interès l'enllaç permanent.