Realm-js和Node Js:应用程序冻结

时间:2017-03-16 13:59:24

标签: javascript node.js realm

我正在使用Node JS和WebStorm测试realm-js。我创建了一个小程序:

'use strict';
 var Realm = require('realm');

 var realm = new Realm({
     schema: [{name: 'Dog', properties: {name: 'string', age: 'int'}}]
 });

 realm.write(() => {
     realm.create('Dog', {name: 'Rex', age: 3});
     realm.create('Dog', {name: 'Jack', age: 5});
 });

 var dogs = realm.objects('Dog');
 var anyDogs = dogs.filtered('age = 5');
 console.log(anyDogs);

在执行期间,我收到了以下答案:

Results { '0': RealmObject { name: 'Jack', age: 5 } }

似乎没问题,但在此应用程序冻结后,我只能通过按“停止”按钮返回编辑模式。当我从控制台启动应用程序时发生了同样的情况:

$ node app.js

有人能解释我在哪里犯了错误吗?

2 个答案:

答案 0 :(得分:1)

Realm对象在Node.js事件循环中有一个条目,以便处理更新和更改通知,这就是使Node.js应用程序运行的原因 - 它正在等待通知出现,就像net.Socket一样。 Node.js中的对象。

解决方案是在Realm文件上调用realm.close(),使其从事件循环中删除。

答案 1 :(得分:0)

这是领域本身的问题 它仍然打开 https://github.com/realm/realm-js/issues/1387

到目前为止,一个丑陋的解决方法是 process.exit()