UNPKG

mattermost-redux

Version:

Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client

34 lines (25 loc) 717 B
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. export default class DelayedAction<F extends (...args: any) => any> { action: F; timer: NodeJS.Timeout | null; constructor(action: F) { this.action = action; this.timer = null; } fire = (): void => { this.action(); this.timer = null; } fireAfter = (timeout: number): void => { if (this.timer !== null) { clearTimeout(this.timer); } this.timer = setTimeout(this.fire, timeout); } cancel = (): void => { if (this.timer !== null) { clearTimeout(this.timer); } } }