javascript - 从 Dexie promise 中获取值(value)

标签 javascript promise dexie

尝试使用Dexie.JS获取以下函数返回的数据:

function findEvent(key) {
  let snippet = '';
  if (!db.isOpen()) {
    lastEvent = lastEvent.then(() => db.open());
  }
  lastEvent = lastEvent.then(() => db.transaction('r', db.events, () => {
    db.events.each((element) => {
      let d = element.cause.data;
      if (d.hasOwnProperty('deleted') && (false == d.deleted) && d.hasOwnProperty('abbreviation') && 
        d.hasOwnProperty('contents') && (d.abbreviation == key)) {
          console.log(`found matching snippet for key: ${key}, contents: ${d.contents}`);
          snippet = d.contents;
      }
    }).then(() => {
      console.log('search callback returning:', snippet);
      return snippet;
    });
  }));

  return lastEvent;
}

我称之为:

  return findEvent(request.key).then((result) => {
    console.log(`findEvent return: ${result}`);
  });

显然,我做错了什么。我的 promise 会按照正确的顺序执行。我在 findEvent 内部的日志中正确打印了 snippet。当结果记录在调用代码中时,它是未定义

应该采取哪些不同的做法?

最佳答案

您不会从db.events.each返回 promise ,因此未定义的内容会通过管道传输到您的顶级 promise 中。

关于javascript - 从 Dexie promise 中获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46230016/

相关文章:

javascript - 用户个人资料图片未显示在最近 api 更改的图表 api 调用中

javascript - 使用 JQuery 切换类(有效、无效)

laravel - React JS Fetch 返回空响应,但 Postman 不返回

javascript - 如何正确链接包含在 Promise 中的不同异步操作

dexie - TypeError : 'caller' , 'callee' 和 'arguments' 属性可能无法在严格模式 dexie.js 上访问

javascript - SharePoint 中的 Rest API 多个列表

javascript - 使 jquery 自动完成也可以由箭头控制

javascript - 做一些 ajax 并使用 getJSON 返回一个 promise

javascript - Dexie - 数据库打开时无法添加版本

reactjs - 如何跟踪 dexie UseLiveQuery 是否完成