React Native Realm 数据库:如何从写入命令返回承诺?

Posted

技术标签:

【中文标题】React Native Realm 数据库:如何从写入命令返回承诺?【英文标题】:React Native Realm database: How to return a promise from a write command? 【发布时间】:2017-01-13 07:01:46 【问题描述】:

我在 React Native 应用程序中使用 Realm.io 数据库。我有一个简单的写命令:

    Realm.write(() => 
        Realm.create('Dog',  name: 'Bob', true);
    );  

    //Few lines below, make a query for the Bob the dog.

如果由于某种原因写入操作需要超过几毫秒,我如何确保当我查询 Bob the dog 时,我会得到更新的对象?

有没有办法让写操作返回一个承诺或类似的东西,所以我可以确保只有在写操作成功后才能执行代码?

【问题讨论】:

感觉就像是立即按顺序执行操作。不过我不确定。 【参考方案1】:

领域同步的。 All callbacks handed to #write are blocking,但这没什么大不了的,因为它针对 React Native 进行了优化。不过,the docs say

写入事务会产生不可忽略的开销 - 您应该构建代码以尽量减少写入事务的数量。

【讨论】:

这种情况下的交易是什么?如果我在write 中调用三个create,这意味着三个事务(三个创建)还是只有一个(一个写入)? 我相信这只是一个。 尽管这个话题已经很老了,但我想添加到@Fermuch 我想说每个write 都算作一个事务,而不是creates,所以write 让你团体交易,这是我的理解

以上是关于React Native Realm 数据库:如何从写入命令返回承诺?的主要内容,如果未能解决你的问题,请参考以下文章

Realm 在 React native 上不返回异常

无法在写入事务之外修改托管对象 - React Native,Realm

在React Native App上打开Realm Studio

Realm 与 React Native 0.29 兼容吗?

Realm React-Native:从 JS(反应本机代码)和 android(java)访问相同的领域

React Native Realm 项目结构