Irf*_*yaz 5 realm react-native
我试图更新realm中的多个对象使用for循环反应原生如下:
let pendingReadings = database.objects('Readings').filtered('synced = false');
database.write(() => {
for (var k=0;k<pendingReadings.length;k++) {
pendingReadings[k].synced = true;
}
});
Run Code Online (Sandbox Code Playgroud)
结果应该标记所有读数同步为真.但是,它仅将备选对象标记为已同步(可能在下一个请求进入时,先前的写入未完成).一次更新所有条目的最佳方法是什么?
小智 12
Realm的查询结果是实时更新.您可以通过各种方式调整循环来解决这个问题,但是通过snapshot()在结果上使用该方法可以获得最佳性能......
let pendingReadings = database.objects('Readings')
.filtered('synced = false')
.snapshot();
database.write(() => {
for (let i = 0, len = pendingReadings.length; i < len; i++) {
pendingReadings[i].synced = true;
}
});
Run Code Online (Sandbox Code Playgroud)
还要注意我调整循环只检索length一次,这也会略微提高性能.for...of如果您愿意,可以使用带有Realm集合的循环,尽管与上面的"原始"循环相比,这样做会有轻微的性能损失.
| 归档时间: |
|
| 查看次数: |
2407 次 |
| 最近记录: |