在javascript中,我正在使用这个函数
export async function createNewRealm(name) {
if (process.env.REALM_DISABLED === 'true') return Promise.resolve();
if (!connectionAdminUser) await establishRealmConnection();
console.log(`Creating ${name} at realms://${server}/${name}`);
return Realm.open({
sync: {
user: connectionAdminUser,
url: `realms://${server}/${name}`
}
});
}
像这样调用函数时
let test = await realm.createNewRealm('test');
console.log(test);
console.log(test.empty);
我得到以下输出
Creating test at realms://:SNIPPED/company-test
Connection[1]: Session[1]: client_reset_config = false, Realm exists = true, async open = false, client reset = false
Connection[1]: Connected to endpoint ':SNIPPED' (from ':SNIPPED')
Connection[1]: Disconnected
Realm {} <-- THIS being first console.log
true <-- THIS being second console.log
Connection[2]: Session[2]: client_reset_config = false, Realm exists = true, async open = false, client reset = false
Connection[2]: Connected to endpoint ':SNIPPED' (from ':SNIPPED')
现在我明白这是因为let test = await realm.createNewRealm('test');
中的test
不是正确的javascript对象,而是代理对象。
我想知道的 - 如何在代码中检查内容或至少通过控制台.log查看密钥?
可以使用这里的文档,但我确实注意到它并不总是更新,我想避免上下文切换,每次都必须查看它是user.id
还是user.identity
,等等......
那么有没有JS方法可以通过控制台.log输出这些内容呢?我不介意它最终是字符串还是数组,只是为了能够按需查看各种领域对象的内容。
还有一个额外的问题,在领域本身的日志中,我可以看到Realm exists = true
,但文档中没有任何内容说明我是否可以通过返回的对象看到这一点。到目前为止,我正在通过调用test.empty
来检查它是否是新的,有没有更简单的方法?(相关,因为这是我问主要问题的原因)
我没有正确的环境,但请尝试此代码
let test = await realm.createNewRealm('test');
console.log(test.__proto__);
我认为您可以像这样打印所有属性
for(let n in test) console.log(n,' = ',test[n]);