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
  });
});

Похоже, нам нужно использовать транзакцию, чтобы иметь запрос в результате запроса. Я надеюсь, что это правильный путь, и надеюсь, что это поможет. Пожалуйста, не стесняйтесь комментировать, если это неправильный путь.

Наместе.

Другие вопросы по тегам