это потому, что когда вы определяете функцию, как вы это сделали:
userSchema.methods.toJSON = function(){
const user = this
const userObject = user.toObject()
delete userObject.password
delete userObject.tokens
return userObject
}
//..and then call
userSchema.methods.toJSON();
и вызываете функцию, ожидаемый результат будет userObject
. Однако, если вы добавите синтаксис async
к функции, возвращением функции будет объект Promise
с userObject
в качестве разрешения объекта Promise
.
Итак, если вы хотите чтобы получить userObject
:
userSchema.methods.toJSON = async function(){
const user = this
const userObject = user.toObject()
delete userObject.password
delete userObject.tokens
return userObject
}
// And if you want to access your user object, you do this...
userSchema.methods.toJSON().then(function(userObject) {
//...work with user object here
console.log(userObject);
//...
});
проверьте это, чтобы узнать больше https://www.positronx.io/angular-8-es-6-typescript-promises-examples/