我正在尝试使用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);
});
问题是我不知道如何访问创建的URL。我想我必须使用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>
更新:
最后,我通过诺言解决了这个问题