Me gustaría usar la función saveAsDraft después de establecer el proceso de tiempo de espera. Pero me sale un error. ¿Qué uso para esto? Devolución de llamada, promesa o...
export class EditBlogComponent implements OnInit { ... //For draft save typingTimer:any; doneTypingInterval = 5000; .... saveAsDraft(blog:Blog) { console.log("Taslak kaydediliyor.", this.blog); } draftSecond(formValue: string) { clearTimeout(this.typingTimer); this.typingTimer = setTimeout(saveAsDraft(this.blog), this.doneTypingInterval); } }Imagen;
Su llamada a saveAsDraft debe ser una función interna.
La sintaxis es -
setTimeout(function(){ ... }, timeInMilliseconds);Así que tu llamada debería ser -
setTimeout(function(){ saveAsDraft(this.blog); }, timeInMilliseconds); Además, solo verifique si this está disponible dentro de la function() . Puede que no lo sea. para que puedas hacer como -
var refToThis = this; setTimeout(function(){ refToThis.saveAsDraft(refToThis.blog); }, timeInMilliseconds);o usar funciones de flecha
setTimeout(()=>{ this.saveAsDraft(this.blog); }, timeInMilliseconds); No puede acceder a saveAsDraft sin this , ya que es un miembro de la clase y solo se puede acceder mediante su objeto.