При обновлении записей в indexedDB, которые содержат массивы / объекты, создается впечатление, что, возможно, на этапе клонирования используются упомянутые данные без необходимости перебора значений / свойств. Является ли это надежным или назначения должны выполняться явно?
Например, в приведенном ниже коде присвоение r.array
сохраняет array_from_RAM
независимо от того, присвоено ли оно в качестве ссылки или используется forEach
. Использует forEach
для повторения повторяющейся работы, которую браузер всегда будет выполнять независимо или на которую нельзя полагаться, так что назначение должно выполняться так, как если бы indexedDB не был задействован.
Спасибо.
req = os.get( key );
req.onsuccess = function()
{
if ( req.result )
{
r = req.result;
r.array = array_from_RAM;
array_from_RAM.forEach( ( v, i ) => { r.array[i] = v; } );
os.put( r );
};
};