javascript - PouchDB 太多递归 - 远程连接上的 Stackoverflow

标签 javascript pouchdb

EIDT:此问题是 Angular2 问题,应在下一个 zone.js 更新中解决。如需临时修复,请参阅:https://github.com/angular/zone.js/issues/886 Стефан Спасов 回答。

<小时/>

我正在尝试将客户端 pouchDB 与服务器 couchDB 同步。

为了从我的 Angular2 应用程序访问 pouchDB,我编写了一个 JavaScript 接口(interface):

var db;
var remoteDb;

function LocalDb() {
  db = new PouchDB('test', {storage:'persistent'});
};

function RemoteDb(url) {
  remoteDb = new PouchDB(url);
};

function sync() {
  db.sync(remoteDb);
};

function addTest() {
  var test = {
    title: 'ABC',
    completed: false
  };

  db.post(test);
};

为了便于阅读,我删除了所有回调。我通过运行 npm install pouchdb 安装了 pouchdb

我还通过添加 <script src="../node_modules/pouchdb/dist/pouchdb.min.js"></script> 添加了 pouchDB 源到index.html。

由于我通过这种方式实现它时遇到了 404 错误,我将 pouchDb dist 文件夹复制到 Assets 中并以这种方式实现了 pouchDB <script src="assets/dist/pouchdb.min.js"></script>

所有 javascript 函数都由按钮调用。

如果我按下“获取本地数据库”和“获取远程数据库”按钮,一切都会正常。当我按下同步按钮时,我得到了很多wrapFn@http://localhost:4200/polyfills.bundle.js:3614:1 Firefox 上的递归错误太多。 Chrome 告诉我超出了最大调用堆栈大小。

如有任何帮助,我们将不胜感激。

<小时/>

编辑...好吧,现在我完全困惑了...我通过创建一个静态 html 文件并使用完全相同的脚本在浏览器中运行它来使其工作:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>RemoteCouch</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
    <h3>Hello World</h3>

    <script type="text/javascript" src="PATH/pouchdb.min.js"></script>
    <script>
        var db = new PouchDB('new');

        db.post({
          name: 'David',
          age: 69
        });

        db.changes().on('change', function() {
          console.log('Ch-Ch-Changes');
        });

        db.replicate.to('http://10.20.20.37:5984/new');
    </script>
</body>
</html>

我使用 tapio/live-server 托管了这个文件,它可以工作。这可能是一个 Angular 问题,或者我只是做错了什么。

<小时/>

为了再尝试一次,我创建了一个新项目,添加了 pouchdb,如此处所述 https://github.com/nolanlawson/pouchdb-find/issues/201并在纯 typescript 中进行了相同的测试,但正如预期的那样,错误仍然存​​在。

最佳答案

我遇到了同样的问题,显然这是 zone.js 的问题。应该会在下一个版本中解决。目前使用 v.0.8.16 解决了我的问题。

“zone.js”:“0.8.16”

这里是 github 问题的引用:https://github.com/angular/zone.js/issues/886

关于javascript - PouchDB 太多递归 - 远程连接上的 Stackoverflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45877953/

相关文章:

javascript - 检查颜色是否为字符串 ('white' === color?//true, 'bright white gold' === color?//false)

javascript - 如何从 Angular Material 日期选择器获取当前时间?

javascript - 未处理的 Promise 拒绝警告 : Error: cant set headers after they are sent

javascript - Angular 1.5 范围变量在 PouchDB 响应函数中不起作用

indexeddb - 从 PouchDB 中删除文档与在用户注销或关闭应用程序时保留它们

javascript - 如何在我的容器内对齐我的 table ?

javascript - 任何人都可以解释闭包和嵌套函数之间的区别吗?

javascript - 创建三 Angular 菜单

javascript - CouchDB 在客户端存储凭证

javascript - Pouchdb 加入/链接文档