지난번에 완전히 바보 같은 실수를 했으므로 이번에는 다시 확인했습니다. 다음은 코드 조각입니다.
var os = require('os');
var hostName = os.hostname();
var hostPlatform = os.platform();
var hostArch = os.arch();
var hostRelease = os.release();
function collectNow(){
var hostInfo = {
name : hostName,
platform : hostPlatform,
arch : hostArch,
release : hostRelease,
hostUptime : os.uptime(),
hostTotalMem : os.totalmem(),
hostFreeMem : os.freemem()
};
return hostInfo;
}
function monConnect(delay){
console.log(JSON.stringify(collectNow()));
console.log(delay); // printing output making sure it is 10000
setTimeout(monConnect,delay);
}
monConnect(10000);
이 코드는 1st print 후 약 10 초간 기다린 후 json 이상을 기다리지 않고 무한 루프로 계속 인쇄하며 delay 값은 정의되지 않습니다.
당신이 할 때
setTimeout(monConnect,delay);
monConnect
delay
밀리 초 후에 호출됩니다 . 그러나 monConnect
값이 전달되지 않았으므로 delay
as undefined
(기본값)를 갖습니다.
이 문제를 해결하려면 다음 setTimeout
과 같이에 전달 된 함수에 실제 인수를 전달할 수 있습니다.
setTimeout(monConnect, delay, delay);
이제 전달 된 두 번째 인수는 호출되어야 setTimeout
하는 실제 시간 지연 monConnect
입니다. 세 번째 인수는 monConnect
시간 초과 후 호출 될 때 전달되는 인수 입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다