node.js 리 셋 방법 예시
리 턴 함수 에 추가 인 자 를 전달 합 니 다.
호출 함수 에서 익명 함수 에서 전달 해 야 할 인 자 를 실현 하고 익명 함수 에서 리 셋 함 수 를 다시 호출 합 니 다.
var events = require("events");
function CarShow() {
events.EventEmitter.call(this);
this.seeCar = function (make) {
this.emit('sawCar', make);
}
}
CarShow.prototype.__proto__ = events.EventEmitter.prototype;
var show = new CarShow();
function logCar(make) {
console.log("Saw a "+make);
}
function logColorCar(make, color) {
console.log("Saw a %s %s ", color, make);
}
show.on("sawCar", logCar);
show.on("sawCar", function (make) {
var colors = ["red", "blue", "black", "pink", "green"];
var color = colors[Math.floor(Math.random()*3)];
logColorCar(make, color);
});
show.seeCar("Ferrari");
show.seeCar("Porsche");
show.seeCar("Bugatti");
리 턴 중 에 폐쇄 를 실현 하 다.만약 에 어떤 반전 함수 가 부모 함수 의 역할 영역 에 접근 해 야 하 는 변 수 는 패 키 지 를 사용 하여 함수 블록 내부 에 비동기 호출 을 밀봉 하고 필요 한 변 수 를 입력 해 야 합 니 다.
function logCar(logMsg, callback) {
process.nextTick(function () {
callback(logMsg);
});
}
var cars = [" ", " ", " "];
for(var idx in cars){
var msg = "Saw a "+cars[idx];
logCar(msg, function () {
console.log("Normal Callback "+ msg);
});
}
for(var idx in cars){
var msg = "Saw a "+cars[idx];
(function (msg) {
logCar(msg, function () {
console.log("Closure Callback "+ msg);
})
})(msg);
}
//Normal Callback Saw a
//Normal Callback Saw a
//Normal Callback Saw a
//Closure Callback Saw a
//Closure Callback Saw a
//Closure Callback Saw a
체인 리 턴비동기 함 수 를 사용 할 때 두 함수 가 이벤트 대기 열 에 있 으 면 실행 순 서 를 보장 할 수 없습니다.해결 방법 은 체인 리 셋 을 실행 하기 위해 더 많은 작업 이 없 을 때 까지 이 함수 의 리 셋 을 다시 호출 하 는 것 이다.
function logCar(car, callback) {
console.log("Saw a %$", car);
if(cars.length){
process.nextTick(function () {
callback();
});
}
}
function logCars(cars) {
var car = cars.pop();
logCar(car, function () {
logCars(cars);
});
}
var cars = [" ", " ", " "];
logCars(cars);
본 논문 에서 말 한 것 이 여러분 의 nodejs 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express + AWS S3 이미지 업로드하기웹 사이트 및 모바일 애플리케이션 등에서 원하는 양의 데이터를 저장하고 보호할 수 있다. 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다. AWS S3 에 저장된 객체에 대한 컨테이너...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.