nodejs promise 예제

다음은 체인 된 약속으로 이를 구현 할 수있는 방법입니다 : 예를 들어, 성공적으로 해결 된 약속에 대한 반응은 다음과 같습니다 . 약속은 직관적이지 않은 콜백의 사용을 제거하는 일종의 디자인 패턴입니다. 약속은 약속이 생성될 때 반드시 알 수 없는 값에 대한 프록시입니다. 이를 통해 처리기를 비동기 작업의 최종 성공 값 또는 실패 이유에 연결할 수 있습니다. 이렇게 하면 비동기 메서드는 동기 메서드와 같은 값을 반환할 수 있습니다. 여기서 약속에 대한 실행기 함수의 구현은 비동기 약속 기반 함수 자체(amqplib API 함수)를 사용합니다. 다음은 전화 예제를 구입하는 모든 엄마약속에 대한 데모 코드입니다: 다음 장에서 약속 체인 및 결과 전달에 대해 자세히 설명하겠습니다. 이것은 jQuery가 약속을 부르는 것이 다른 사람들이 약속을 부르는 것과 는 실제로 완전히 다르다는 것을 경고하는 좋은 시간처럼 느껴집니다. jQuery의 약속은 API를 제대로 생각하지 않아 혼란스럽습니다. 다행히도 jQuery의 이상한 버전의 약속을 사용하는 대신 정말 간단한 표준화 된 약속으로 변환 할 수 있습니다.이 예제는 단추를 클릭하여 시작됩니다. Promise를 지원하는 브라우저가 필요합니다.

짧은 시간에 여러 번 버튼을 클릭하면 다른 약속이 차례로 성취되는 것을 볼 수 있습니다. 실행자는 하나의 확인 또는 하나의 거부만 호출해야 합니다. 약속의 상태 변경은 최종입니다. 스레드 풀의 스레드가 차단될 수 있지만(예: 디스크 액세스 대기) 자체 스레드에서 실행되는 JavaScript 엔진을 차단하지는 않습니다. 스레드 풀의 모든 스레드가 사용 중이고 JavaScript 엔진의 새 작업이 도착하면 이러한 새 작업은 libuv에 의해 큐에 대기되며 작업자 스레드가 자유로워지자마자 처리됩니다. 특히 약속을 “이행”하려는 경우, 즉 비동기 작업이 성공한 경우 resolve 함수를 호출해야 합니다. 그리고 약속을 “거부”할 때, 즉 비동기 작업이 실패했을 때 reject 함수를 호출해야합니다. 약속은 비동기적입니다.

약속을 부르기 전과 후에 메시지를 기록해 봅시다. 함수 지연(ms)은 약속을 반환해야 합니다. 약속 기반 버전은 콜백 기반 버전보다 더 간결하며 읽기가 더 용이하다고 주장 할 수 있습니다. 이 대화형 데모의 소스는 GitHub 리포지토리에 저장됩니다. 대화형 데모 프로젝트에 기여하려면 https://github.com/mdn/interactive-examples 복제하여 끌어오기 요청을 보내주십시오. 그거에요. 바라건대이 문서는 자바 스크립트 약속을 길들이기 위해 경로를 부드럽게. 해피 코딩! 이제 원래 예제를 간단히 다시 작성할 수 있습니다. 그러나 promise 기능을 사용하여 비동기 함수를 만들어야하는 경우 약속을 만드는 방법을 알아야합니다. 약속으로, 다른 한편으로는, 우리는 모든 익명 함수에 대 한 일정 한 중첩 깊이 및 오류 (캐치 함수에 의해) 체인의 요소로 처리 됩니다.

그러나 약속 실행기 함수를 구현하기 위해 콜백 기반 비동기 함수를 사용하는 것을 막을 수는 없습니다.

Posted in Uncategorized