20220207 TIL

jathazp·2022년 2월 7일
0

15

목록 보기
13/14

setTimeout

setTimeout은 코드의 실행시간을 지정한 시간만큼 지연시킨다.
https://developer.mozilla.org/ko/docs/Web/API/setTimeout

clearTimeout

https://developer.mozilla.org/en-US/docs/Web/API/clearTimeout
clearTimeout을 이용해 settimeout을 즉시 종료시킬 수 있다


nodejs 이벤트 등록 및 호출

ex)

process.on('tick',function(n){ console.log('hi' +n});
process.emit('tick',777);

https://stickie.tistory.com/66

중첩함수에서 this 이용하는 방법
중첩함수에서는 this를 매개변수로 넘겨주고 안쪽의 중첩 함수에서 this를 매개변수로 받아서 사용할 수 있다.

        process.on('CHANGE_REPORTING_INTERVAL', function (deviceId, interval, that) {
            let sensor = that.running_sensors.find(x => x.id == deviceId);
            if (sensor.powerStatus === "on" && interval >= 0 && interval <= 10000) {
                sensor.reportingInterval = interval;
            }
        })
    publish(eventObj) {
        let sensor = this.running_sensors.find(x => x.id === eventObj.deviceId);
        if (sensor.powerStatus === "on") {
            process.emit(eventObj.actionId, eventObj.deviceId, eventObj.payload, this);
            // if (eventObj.actionId === 'CHANGE_REPORTING_INTERVAL') {
            //     sensor.reportingInterval = eventObj.payload;
            // }
        }
    }

readline-sync

readliny-sync를 이용하면 간단히 동기적 입력을 받을 수 있다.

다만 동기적으로 실행되면서 사용자 입력 전에 뒤의 코드를 실행할 수 없음에 주의하면서 사용하자.
https://www.npmjs.com/package/readline-sync

//npm i readline-sync
let readlineSync = require('readline-sync');
let deviceId = readlineSync.questionInt('id:');
let interval = readlineSync.questionInt('interval:');

0개의 댓글