this is summary of my code. Frame is defined as
export type Frame = {
changes: readonly vscode.TextDocumentContentChangeEvent[];
selections: readonly vscode.Selection[];
};
record.ts
export default class SomeClass {
private timeout: NodeJS.Timer | undefined = undefined;
private _text = Frame[][] = [];
constructor() {
// Do some constructor
}
private onDidChange() {
this.triggerSave();
}
private triggerSave() {
if (this.timeout) {
clearTimeout(this.timeout);
this.timeout = undefined;
}
this.timeout = setTimeout(this.save, 500);
}
private save() {
this._text.push('__someframething__');
console.log(this._text);
// Output: undefined
}
}
on save method, _text must be Frame Thing
But on the console, it’s undefined. what’s wrong with it?
Full code on my gist record.ts buffer.ts
Advertisement
Answer
try:
this.save = this.save.bind(this) in your constructor.
greetings