mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
28 lines
611 B
JavaScript
28 lines
611 B
JavaScript
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
export default class DelayedAction {
|
|
constructor(action) {
|
|
this.action = action;
|
|
|
|
this.timer = -1;
|
|
|
|
// bind fire since it doesn't get passed the correct this value with setTimeout
|
|
this.fire = this.fire.bind(this);
|
|
}
|
|
|
|
fire() {
|
|
this.action();
|
|
|
|
this.timer = -1;
|
|
}
|
|
|
|
fireAfter(timeout) {
|
|
if (this.timer >= 0) {
|
|
window.clearTimeout(this.timer);
|
|
}
|
|
|
|
this.timer = window.setTimeout(this.fire, timeout);
|
|
}
|
|
}
|