我无法找到导致此错误的原因:
这是我的代码:
create: async (data) => {
const insertedData = await dbProvider.query('INSERT INTO users SET ?', data);
console.log(this);
return await this.getById(insertedData.insertId);
},
getById: async (id) => {
const data = await dbProvider.query('SELECT * From users WHERE id = ?', id);
return data;
},

使用await repo.create(data)调用Create; create调用this.getById会导致错误。 知道为什么会这样吗?
答案 0 :(得分:2)
因为箭头函数预先绑定到词汇this
。
如果你想在函数内部使用动态this
,它就不能是箭头函数:
async create(data) {
const insertedData = await dbProvider.query('INSERT INTO users SET ?', data);
console.log(this);
return await this.getById(insertedData.insertId);
},
async getById(id) {
const data = await dbProvider.query('SELECT * From users WHERE id = ?', id);
return data;
},