Я хотел бы получить "последний идентификатор вставки" из обратного вызова функции sqlite.run('INSERT INTO table...', {}, callback)
.В документах говорится, что можно использовать this.lastID
внутри функции обратного вызова.
В моем проекте я использую реагировать и node.js (электрон) с классами es6.Таким образом, моя функция обратного вызова является функцией стрелки, которая (согласно документам из mdn) не получает свой собственный this
, она использует this
окружающего кода (в данном случае мой класс реагирования):
this.db.run(
'INSERT INTO table...',
{},
(error) => {
// check error
if(error !== null) {
this.props.addNotification({
open: true,
variant: 'error',
message: error.message,
autoClose: null,
});
} else {
this.props.route.history.push('/...');
this.props.closeForm();
}
}
);
Я попытался перейти к классическому объявлению функции обратного вызова, со следующим результатом:
function(error) {
...
console.log(this.lastID); // is available
this.props.route.history.push('...'); // cannot access property route of undefined
}
Оба поведения понятны, но есть ли способ получить оба this.lastID
из функции обратного вызоваи доступ к this.props
или this.state
из класса реакции?