我正在使用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
有人能解释我在哪里犯了错误吗?
答案 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()