Timer : Timer
Timer is frequently used module, and JSRE supports the standard traditional JavaScript Timer (Timeout) and JSRE Timer classes.
Timer is the same as SigSlot, and uses the JSRE interrupt mechanism to notify events.
Example
- Traditional timer
// Run the callback after one second only once.
setTimeout(() => {
console.log('setTimeout() Timeout!');
}, 1000);
// Run the callback per second.
setInterval(() => {
console.log('setInterval() Timeout!');
}, 1000);
// Run the callback when the system allows interrupts.
setImmediate(() => {
console.log('setImmediate() Timeout!');
});
- JSRE Timer
var t = new Timer();
// Run the callback after one second only once.
t.start(1000, () => {
console.log('Timeout Timeout!');
});
// Run the callback per second.
t.start(1000, 1000, () => {
console.log('Interval Timeout!');
});
// Run the callback when the system allows interrupts.
t.start(0, () => {
console.log('Immediate Timeout!');
});
Support
The following shows Timer module APIs available for each permissions.
| User Mode | Privilege Mode | |
|---|---|---|
| Timer | ● | ● |
| timer.start | ● | ● |
| timer.stop | ● | ● |
| timer.remain | ● | ● |
| timer.isRepeat | ● | ● |
| timer.isStopped | ● | ● |
| timer.interval | ● | ● |
| timer.pause | ● | ● |
| timer.resume | ● | ● |
| timer.reset | ● | ● |
| timer.expire | ● | ● |
| setTimeout | ● | ● |
| setInterval | ● | ● |
| setImmediate | ● | ● |
| clearTimeout | ● | ● |
| clearInterval | ● | ● |
| clearImmediate | ● | ● |
Timer Class
new Timer()
Create a JSRE timer object.
Example
var t = new Timer();
Timer Object
timer.start(count, func[, ...arg])
count{Integer} Timeout in milliseconds.func{Function} Timer callback function....arg{Any} Callback arguments. default: undefined.
Start the timer and wait for count milliseconds, then call func callback once. If the timer is running, restart the timer with new setting.
Example
function callback() {
console.log('Timer Notify!');
}
var t = new Timer();
t.start(1000, callback);
timer.start(count, interval, func[, ...arg])
count{Integer} Timeout in milliseconds.interval{Integer} Timer interval.func{Function} Timer callback function....arg{Any} Callback arguments. default: undefined.
Start the timer and wait for count milliseconds, then call func callback. then restart timer and call func per interval milliseconds. If the timer is running, restart the timer with new setting.
Example
var counter = 0;
function callback() {
console.log('Timer Notify!', counter++);
}
var t = new Timer();
t.start(1000, 2000, callback);
timer.stop()
Stop timer. If the timer does not start, nothing happens.
timer.remain()
- Returns: {Number} Remaining milliseconds.
How many milliseconds remaining from now to timeout. If the timer does not start, return positive infinity.
Example
var count = t.remain();
if (Number.isFinite(count)) {
console.log('Timer remain:', count);
} else {
console.log('Timer stoped!');
}
timer.isRepeat()
- Returns: {Boolean} Is this timer a period timer.
Check timer type, The period timer returns true. otherwise false.
timer.isStopped()
- Returns: {Boolean} Is this timer stopped.
Check if timer has stopped. This method is available on EdgerOS 1.10.1 and above.
timer.interval([interval])
interval{Integer} New interval.- Returns: {Integer} Previous interval.
Set or get a running timer interval. Calling this function must ensure that the timer is not in the stop state.
Example
var t = new Timer();
t.start(1000, 1000, function() {
console.log('OK!');
t.interval(3000); // Change interval to 3000ms
});
timer.pause()
- Returns: {Boolean} Whether the operation was successful.
Pause a running timer.
timer.resume([timeout])
timeout{Integer} New timeouts (not interval).- Returns: {Boolean} Whether the operation was successful.
Resume a previously paused timer. If there is a timeout argument, the first timed time during resume is timeout, and if there is no timeout argument, the remaining time at the last pause() during resume is timed time.
timer.reset(count)
count{Integer} Timeout in milliseconds.- Returns: {Boolean} Whether the operation was successful.
When the timer is working, you can use this function to reset the current timing time of the timer. 0 means immediate timeout. This function will not change whether the timer is a periodic timer property. Invoke this method on a timer that is not running has no effect and returns false.
timer.expire()
- Returns: {Boolean} Whether the operation was successful.
Causes a running timer to expire immediately. EdgerOS 1.7.1 and later versions support this feature.
Timeout Functions
The following API is a JavaScript traditional timer function.
setTimeout(callback, delay[, ...arg])
callback{Function} The function to call when the timer elapses.delay{Integer} The number of milliseconds to wait before calling thecallback....args{Any} Optional arguments to pass when the callback is called. default: undefined.- Returns: {Timeout} for use with
clearTimeout().
Schedules execution of a one-time callback after delay milliseconds.
Example
// Run the callback after one second only once.
setTimeout(() => {
console.log('setTimeout() Timeout!');
}, 1000);
setInterval(callback, delay[, ...arg])
callback{Function} The function to call when the timer elapses.delay{Integer} The number of milliseconds to wait before calling thecallback....args{Any} Optional arguments to pass when the callback is called. default: undefined.- Returns: {Timeout} for use with
clearInterval().
Schedules repeated execution of callback every delay milliseconds.
Example
// Run the callback per second.
setInterval(() => {
console.log('setInterval() Timeout!');
}, 1000);
setImmediate(callback[, ...arg])
callback{Function} Callback function....args{Any} Optional arguments to pass when the callback is called. default: undefined.- Returns: {Timeout} for use with
clearImmediate().
The timer interrupt is requested immediately. The timer callback function will be executed only when the current task is allowed to respond to the interrupt.
Example
// Run the callback when the system allows interrupts.
setImmediate(() => {
console.log('setImmediate() Timeout!');
});
clearTimeout(timeout)
timeout{Timeout} A timeout object as returned bysetTimeout().
Cancels a timeout object created by setTimeout().
clearInterval(timeout)
timeout{Timeout} A timeout object as returned bysetInterval().
Cancels a timeout object created by setInterval().
clearImmediate(timeout)
timeout{Timeout} A timeout object as returned bysetImmediate().
Cancels a timeout object created by setImmediate().




陕公网安备61019002002605号