javascript - 从附件 PouchDB 返回 url

标签 javascript promise couchdb attachment pouchdb

我正在尝试使用 CouchDB 和 PouchDB 创建一个网页。一开始我创建了一个 CouchDB 数据库(“图像”)。该数据库中有一份包含多个附件的文档,所有附件均为图像 (.png)。我能够将 CouchDB 数据库与 PouchDB 同步。现在我想使用 PouchDB 中存储的附件。

我使用 db.get 语句来获取附件。

db.get('image', {attachments: true}).then(function (doc) {
        console.log(doc);
});

现在我想获取不同的图像,因为我需要它们作为不同位置的 src。目前我正在使用:

    db.getAttachment('image', 'image1.png').then(function (blob) {
      var url = URL.createObjectURL(blob);
      console.log('URL image1 created');
    }).catch(function (err) {
        console.log('URL image1 not created');
        console.log(err);
    });

问题是我不知道如何访问创建的网址。我想我必须使用 return 并使用全局变量。但我不知道在这种情况下如何做到这一点。

我使用了以下guide但是,正如我所说,我想在代码中的其他地方使用该 url。

最佳答案

解决方案的一部分

问题似乎是在img标签尝试访问url之后生成url。这意味着即使您使用全局变量也会出错。因此我改变了顺序。

现在 src 在 url 生成后更新。问题仍然是,它有点复杂,并且在您使用多个附件时并不是很有用。我仍然希望获得该网址以供进一步使用。

  <body>

     <img id ="test"  alt="Image from DB" style="width:304px;height:228px;">

  <script>

    var url = " ";

    var imageFW = db.getAttachment('image', 'image1.png');

    imageFW.then(function (blob) {
      url = URL.createObjectURL(blob); 
      document.getElementById("test").src = url;
    }).catch(function (err) {
      console.log(err);
    });

  </script>

更新: 最后我解决了使用 promise 的问题

关于javascript - 从附件 PouchDB 返回 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35141882/

相关文章:

javascript - TableView 中的多行标签

javascript - 在 jquery 中编写一个函数来滚动到屏幕上的特定 div?

javascript - 如何使用 jQuery 将 JSON 对象创建到数组中?

javascript - Promise() 在动画完成之前不会延迟功能的问题

windows-10 - 父子连接时系统卡住

couchdb - 如何在外部链码构建中打包 couchdb 索引?

javascript - 如何使用 javascript/jquery 在 chrome 中禁用鼠标滚轮滚动

javascript - 将 Promise 与循环和嵌套函数一起使用

node.js - 如何使用 mocha 和 chai 正确测试 Promise?

database - 什么数据库足以用于日志记录应用程序?