Будет ли новый 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 создаст для вас уникальный.

Другие вопросы по тегам