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/