realm.io 网站刚刚发布了 documentation 说明如何执行此操作。
异步打开领域
如果打开一个 Realm 可能需要一个耗时的操作,例如应用迁移或下载同步 Realm 的远程内容,您应该使用 openAsync API 来执行所有需要的工作,以使 Realm 在调度到给定队列之前的后台线程。您还应该将 openAsync 与设置为只读的领域一起使用。
例如:
Realm.openAsync({
schema: [PersonSchema],
schemaVersion: 42,
migration: function(oldRealm, newRealm) {
// perform migration (see "Migrations" in docs)
}
}, (error, realm) => {
if (error) {
return;
}
// do things with the realm object returned by openAsync to the callback
console.log(realm);
})
openAsync 命令的第一个参数是配置对象,第二个参数是回调;回调函数接收一个布尔错误标志和打开的领域。
初始下载
在某些情况下,您可能不想打开 Realm,直到它拥有所有可用的远程数据。在这种情况下,请使用 openAsync。当与同步的 Realm 一起使用时,这将在调用回调之前下载所有 Realm 的内容。
var carRealm;
Realm.openAsync({
schema: [CarSchema],
sync: {
user: user,
url: 'realm://object-server-url:9080/~/cars'
}
}, (error, realm) => {
if (error) {
return;
}
// Realm is now downloaded and ready for use
carRealm = realm;
});