Realm 在 React native 上不返回异常

Posted

技术标签:

【中文标题】Realm 在 React native 上不返回异常【英文标题】:Realm does not return exception on React native 【发布时间】:2018-06-21 06:11:48 【问题描述】:

我在 React 本机上使用 Realm 数据库。在我的模型架构中,id 字段是必需的。当 id 字段未定义时,Realm 确实返回异常并且未完成添加数据。为什么Realm在try catch中不返回异常??

模型架构:

export default class ServicesModule 
    cache = ;


ServicesModule.schema = 
    name: "ServicesModule",
    primaryKey: "id",
    properties: 
        id: "int",
        title: "string?"
    
;

插入数据:

try 
      return new Promise((resolve, reject) => 
         realm().write(() => 
            resolve(realm().create("ServicesModule", title: 'Test exception', true));
         );
      );
 catch(e) 
   console.error(e.message);

【问题讨论】:

【参考方案1】:

可能是因为您的承诺没有拒绝。尝试:

try 
  return new Promise((resolve, reject) => 
     try

        realm().write(() => 
           resolve(realm().create("ServicesModule", title: 'Test exception', true));
        );

    catch(error)
        reject(error);
    
  );
 catch(e) 
 console.error(e.message);

【讨论】:

外部try catch 块是不必要的,因为返回Promise 永远不会失败。

以上是关于Realm 在 React native 上不返回异常的主要内容,如果未能解决你的问题,请参考以下文章

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

在React Native App上打开Realm Studio

https 在 react-native android 上不起作用

Realm 与 React Native 0.29 兼容吗?

如何使用 Realm 项目文件组织 React Native?

React Native Realm 项目结构