【发布时间】:2014-11-23 23:49:26
【问题描述】:
我对 Mongoose 方法的回调函数中的对象范围有疑问。 我的员工有“地址”。当您调用此“方法”时,它会在地址模型中查找地址。
Javascript:
employeeSchema.methods.getAddresses = function (callback) {
addressModel.find({ _id: { $in: this.addresses } }, function (err, obj) {
callback(obj);
});
};
我想输入所有内容,但函数中的“this”范围存在问题。 范围在对象本身上,但是所有示例都显示“this”。这在 TypeScript 中不起作用,因为它认为它是主类。
打字稿:
employeeSchema.methods.getAddresses = (callback) => {
addressModel.find({ _id: { $in: this.addresses } }, (err, obj) => {
callback(obj);
});
};
我有同样的验证问题:
accountSchema.path('email').validate(function (email, callback) {
if (this.isNew || this.isModified('email')) {}
}
'This'是回调范围内的账户,但有没有办法将对象实际传递给回调?
【问题讨论】:
-
为什么不把地址作为参数传入你的方法呢? (地址,回调)...然后调用者将使用“this.addresses”
标签: javascript node.js callback mongoose typescript