// 定义 BufferTimer 类
export class BufferTimer {
    // 静态属性，用于单例模式
    private static _instance: BufferTimer;
    // 缓冲区，使用数组模拟队列
    private _buffer: any[] = [];
    // 缓冲持续时间，单位为毫秒
    private _timeSpan: number;

    // 构造函数，接收缓冲持续时间作为参数
    constructor(timeSpan: number) {
        this._timeSpan = timeSpan;
    }

    // 静态方法，获取单例实例
    public static get Instance(): BufferTimer {
        if (!this._instance) {
            this._instance = new BufferTimer(1000); // 1000 毫秒即 1 秒
        }
        return this._instance;
    }

    // 添加数据到缓冲区
    public Add(o: any): void {
        if (this._buffer.length === 0) {
            // 开始计时
            setTimeout(() => {
                this._buffer = [];
            }, this._timeSpan);
        }
        this._buffer.push(o);
    }

    // 获取缓冲区数据
    public GetBuffer(): any[] {
        return [...this._buffer];
    }
}