Приложение My Vue использует простой объект JS для централизации вызовов базы данных.Я хочу консоль журнала вызовов.С этой целью я украшаю методы объекта, как показано ниже:
const Caller = {
callingDB (arg1, arg2) { return ... } //Promise-wrapped db call here
}
const decorator = f => (...args) => {
return f(...args).then(res => console.log(`Invoked method ${f.name} with ${args} for result: ${res}`))
}
Caller.callingDB = decorator(Caller.callingDB)
И в нескольких компонентах Vue у меня есть методы компонента, вызывающие вышеупомянутый метод простого объекта как: ...
methods: {
cMethod() { this.Caller.callingDB(arg1, arg2) }
}
Однако есть предостережение: однажды оформленный метод Caller.callingDB вызывает ошибку из-за того, что 'this' не определено - поток данных в моем приложении время от времени полагается на цепочечные вызовы БД через методы, подобные показанному выше, всеиз которых вызываются аналогичным образом.Все отлично работает без оформления.
Я не понимаю, почему эти ошибки происходят.Любой намек на то, как мне переписать мой декоратор, чтобы сохранить все последующие вызовы, связанные с этим?Или я пропустил виновника этих ошибок?