DexieJS возвращает NotFoundError во вложенном запросе
Я столкнулся с проблемой DexieJS, когда у меня был вложенный запрос. Ниже приведен образец моего кода:-
let id = 1;
let child = db.child.where({ id : result.child_id }).first( item => item ).catch( e => "NotFoundError"; );
console.log(child); // success, it shows the child item
db.parent.where({ id : id }).each( parent => {
let child = db.child.where({ id : parent.id }).first( item => item ).catch( e => "NotFoundError"; );
console.log(child); // it will show NotFoundError
});
не знаю, что происходит, вложенный запрос не работает на DexieJS, и я не сомневаюсь, что он должен работать.
Пожалуйста, посоветуйте, заранее спасибо.
1 ответ
Нашли решение или обходной путь, теперь он работает.
await db.transaction('r', db.parent, db.child, async () => {
await db.parent.where({ id : id }).each( async parent => {
let child = db.child.where({ parent_id : parent.id }).first( result => result );
console.log(child) // *now it shows the child record
});
});
Похоже, нам нужно использовать транзакцию, чтобы иметь запрос в результате запроса. Я надеюсь, что это правильный путь, и надеюсь, что это поможет. Пожалуйста, не стесняйтесь комментировать, если это неправильный путь.
Наместе.