Будет ли новый Date(). ToJSON() всегда быть уникальным в Javascript?
Руководство PouchDB предлагает использовать Date().toJSON()
создать новый идентификатор для каждого документа. Все ли javascript runtime гарантируют, что Date().toJSON()
всегда будет уникальным?
3 ответа
Решение
Даты имеют точность только микросекунды, поэтому нет гарантии, что они будут уникальными.
Приведенный ниже фрагмент кода даст вам множество дубликатов во всех средах, кроме самых медленных:
for (let i = 0; i < 10; i++) {
console.log(new Date().toJSON())
}
В случае распределенной системы, мы также можем использовать этот модуль Eventid.
Я думаю, что руководство PouchDb упомянуло использование дат в этом примере, чтобы документы были в порядке даты / времени, а не чтобы это обеспечивало уникальность. В API вы можете видеть, что если вы не укажете идентификатор, PouchDb создаст для вас уникальный.