nodejs에서 대기는 비차단 방식으로 실행을 일시 중지하고 약속의 비동기 요청을 기다리고 비동기 메서드가 실행을 완료할 때까지 기다리는 데 사용됩니다. 대기는 비동기 함수에서 반환 값을 기다리는 데 사용할 수 있습니다. 비동기 함수; 약속이 반환됩니다. 거부가 실패하면 거부 값이 발생하고 "try/catch"로 캡처할 수 있습니다.
이 문서의 운영 환경: Windows 10 시스템, nodejs 버전 12.19.0, Dell G3 컴퓨터.
Async/await 사용법은 Node.js 7 night에서 도입되었지만 공식적으로 async/await 기능을 활성화하는 것은 Node.js 8 및 Javascript V8에서만 가능합니다.
비동기/대기란 무엇인가요? 과거에 Promise를 사용하여 비동기 작업을 구현하는 방법 다음 사례는 Promise 및 Fetch API를 사용하여 데이터를 캡처하는 방법을 보여줍니다.
function getTrace () { return fetch('https://www.jdon.com', { method: 'get' }) } getTrace() .then() .catch()
async/await를 사용하면 비차단 방식으로 실행을 일시 중지하고 결과를 기다릴 수 있습니다. Promise가 반환되는 경우 거부가 실패하면 거부 값이 발생하고 try/catch로 캡처할 수 있습니다. 위의 경우는 async/await를 사용하여 다음과 같이 작성할 수 있습니다.
function async getTrace () { let pageContent try { pageContent = await fetch('https://www.jdon.com', { method: 'get' }) } catch (ex) { console.error(ex) } return pageContent } getTrace() .then()
Node.js에서 async/await를 사용하고, settimeout을 사용하여 함수 실행을 지연시키고, async/await 캡슐화를 사용하는 경우를 살펴보겠습니다.
// app.js const timeout = function (delay) { return new Promise((resolve, reject) => { setTimeout(() => { resolve() }, delay) }) } async function timer () { console.log('timer started') await Promise.resolve(timeout(100)); console.log('timer finished') } timer()
이 app.js 파일을 만들고 다음을 실행하세요.
node app.js
실행할 수 없다면 nodejs가 nightly 버전이고 공식적으로 async/await를 지원하지 않는 것일 수 있습니다. 명령줄은 다음과 같아야 합니다.
node --harmony-async-await app.js
추천 학습: "nodejs 비디오 튜토리얼"
위 내용은 nodejs에서 wait를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!