Node.js 개발에서는 비동기 요청을 할 때 콜백 함수를 호출해야 하는 경우가 많습니다. 이 콜백 함수는 요청이 끝난 후 일부 작업을 수행하는 역할을 합니다. Node.js에서 제공하는 http 모듈은 http 요청을 시작하는 데 일반적으로 사용되는 모듈입니다. 클라이언트 또는 서버 http 요청에 사용할 수 있습니다.
http 모듈에서는 일반적으로 http.get() 또는 http.request() 메서드를 사용하여 http 요청을 시작합니다. 두 메서드 모두 반환하기 전에 요청이 완료될 때까지 기다린다는 점에서 비동기적입니다. 그러면 요청이 끝난 후 콜백 함수를 어떻게 호출합니까?
방법 1: 콜백 함수를 매개변수로 전달
http.get() 메소드와 http.request() 메소드에서는 둘 다 콜백 함수를 포함할 수 있는 매개변수 옵션을 허용합니다. 이 콜백 함수는 요청이 완료된 후 실행되는 함수입니다.
예를 들어 http.get() 메서드를 사용하여 웹페이지의 콘텐츠를 가져오고 요청이 완료된 후 콘텐츠를 콘솔에 출력할 수 있습니다.
const http = require('http'); http.get('http://www.example.com', (res) => { let data = ''; // 接收响应数据 res.on('data', (chunk) => { data += chunk; }); // 响应结束时输出结果 res.on('end', () => { console.log(data); }); });
이 예에서는 http를 통해 보냅니다. get() 메소드 http://www.example.com의 웹 콘텐츠를 얻기 위한 GET 요청입니다. 그런 다음 익명 함수를 콜백 함수로 정의하여 수신된 응답 데이터를 연결하고 콘솔에 출력합니다.
방법 2: Promise 객체 사용
콜백 함수를 매개변수로 전달하는 것 외에도 Promise 객체를 사용하여 요청이 끝난 후 작업을 처리할 수도 있습니다. Promise 객체는 Node.js 비동기 메서드에서 널리 사용되는 ES6의 새로운 기능입니다.
http 모듈에서는 http.get() 또는 http.request() 메서드를 호출하여 Promise 객체를 반환할 수 있습니다. 이 Promise 객체에서는 then() 메서드를 사용하여 요청이 끝난 후 실행될 함수를 설정할 수 있습니다. 예를 들어, Promise 개체를 사용하여 웹 페이지의 콘텐츠를 가져오고 요청이 완료된 후 해당 콘텐츠를 콘솔에 출력할 수 있습니다.
const http = require('http'); const getRequest = (url) => { return new Promise((resolve, reject) => { http.get(url, (res) => { let data = ''; // 接收响应数据 res.on('data', (chunk) => { data += chunk; }); // 响应结束时输出结果 res.on('end', () => { resolve(data); }); }).on('error', (err) => { reject(err); }); }); }; getRequest('http://www.example.com') .then((data) => { console.log(data); }) .catch((err) => { console.error(err); });
이 예에서는 getRequest()라는 함수를 사용하여 Promise 개체를 반환합니다. . Promise 객체에 http.get() 메서드를 래핑하고 요청이 끝날 때 해결() 함수를 통해 응답 데이터를 then() 메서드에 전달합니다. 오류가 발생하면 해당 오류 정보는 accept() 함수를 통해 catch() 메서드로 전달됩니다. 그런 다음 getRequest() 메서드를 호출하고 반환된 Promise 객체에 then() 메서드를 정의하여 응답 데이터를 출력합니다.
요약
위는 Node.js에서 http 요청을 시작하고 요청이 완료된 후 함수를 호출하는 두 가지 방법입니다. 콜백 함수를 매개변수로 전달하거나 Promise 객체를 사용하여 요청이 끝난 후 사용자 지정 작업을 수행할 수 있습니다. 실제 개발에서는 특정 상황에 따라 비동기 요청을 처리하는 적절한 방법을 선택할 수 있습니다.
위 내용은 nodejs 요청이 끝난 후 함수를 호출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!