2017-03-16 50 views
0

我使用Node JS和WebStorm測試realm-js。我創建了一個小程序:Realm-js和Node 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 

任何人能解釋我在哪裏,我犯了一個錯誤:當我從控制檯啓動應用程序時出現同樣的情況?

回答

1

Realm對象在Node.js事件循環中有一個條目,以便處理更新和更改通知,這就是保持Node.js應用程序運行的原因 - 它等待萬一發生通知,就像網絡一樣。 Node.js中的套接字對象

解決方法是在Realm文件上調用realm.close(),以便將其自身從事件循環中移除。

+0

是的,現在它的工作!非常感謝你!! – Hermann