我如何在箭头中使用此关键字(回调函数)。我在课堂上创建了mongoose Schema。看看吧。
class UserSchema {
private userSchema: Schema;
constructor() {
this.setSchema();
}
public getUserSchema(): Schema {
return this.userSchema;
}
private setSchema() {
this.userSchema = new Schema({
createdAt: Date,
uptadedAt: Date,
email: String,
password: String
});
this.preSave();
}
private preSave() {
this.userSchema.pre('save', (next: NextFunction) => {
/*
Here
*/
if(this.createdAt)
this.createdAt = new Date();
next();
});
}
}
如您所见,我添加了评论。我想访问createdAt将日期添加到变量,但我无法访问此关键字:( 有什么想法吗?
答案 0 :(得分:0)
我没有尝试使用Mongoose,但这是我通常在类中使用箭头函数的方法:只需创建一个新方法并引用它。它可以防止“回调金字塔”和this
一直引用类实例
class UserSchema {
private preSave() {
this.userSchema.pre('save', (next: NextFunction) => this.doSomething(next))
}
private doSomething(next:NextFunction) {
console.log(this)
console.log("this should be the UserSchema instance")
if(this.createdAt) {
this.createdAt = new Date()
}
next()
}
}