0

我现在正试图让 PouchDB 工作两天 - 一些简单的东西有效,有些则无效。

很难找出原因,但我最终设法找出了一个问题 - IndexDB 破坏数据库并再次创建或承诺在 PouchDB 中实现的问题我不知道。

无论如何 - 下面的代码在 Firefox 中工作到最后,但在 Chorme 中只到达“正在创建数据库......”并且没有任何警告就停止(在调试器下永远不会到达“发布记录”)

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8"/>
</head>

<body>

<script src="lib/pouchdb/dist/pouchdb-nightly.js"></script>

<script>
    new PouchDB('test')
        .then(function (db) {
            console.log("Destroying database.. ");
            return db.destroy()
        })
        .then(function () {
            console.log("Creating database.. ");
            return new PouchDB('test');
        })
        .then(function (db) {
            console.log("Posting record.. ");
            return db.post({name: 'name'});
        })
        .then(function(info){
            console.log("Checking id of inserted record: " + info.id);
        })
        .catch(function (error) {
            console.log(error.message);
        });

</script>

</body>
</html>

任何解决方法?

我需要“销毁数据库->然后创建新的->然后做一些事情”的操作流程,每次都可以在每个浏览器中工作-我尝试了承诺,使用回调-要么得到代码示例中的结果,要么得到 IndxedDB 错误 11 ...

4

1 回答 1

0

您的承诺链中发生了一些奇怪的事情,但这里有一个解决方法,效果很好:

new PouchDB('test')
        .then(function (db) {
            console.log("Destroying database.. ");
            return db.destroy();
        })
        .then(function () {
            console.log("Creating database.. ");
            return new PouchDB('test').then(function (db) {
                console.log("Posting record.. ");
                return db.post({name: 'name'});
            })
            .then(function(info){
                console.log("Checking id of inserted record: " + info.id);
            });
        })
        .catch(function (error) {
            console.log(error.message);
        });

输出:

Destroying database.. Creating database.. Posting record.. Checking id of inserted record: 0613FFBA-518F-4F20-A1DD-D18E59A4340B

不过,为了安全起见,我在 PouchDB 上提交了一个问题。

于 2014-04-17T22:17:47.810 回答