¿La setItem(key,value)
función es asíncrona?
localStorage.setItem("key",someText);
No, todas las localStorage
llamadas son sincrónicas.
nbf
o exp
desde el token de autenticación.
Realmente. El almacenamiento web ya no es parte del estándar principal de HTML5, se ha dividido.
La especificación relevante (borrador) se puede encontrar aquí y lo único que notará es que no menciona síncrono o asíncrono en ningún lado.
Sin embargo, el análisis del texto sugeriría que debe ser sincrónico (mi negrita):
El método setItem (clave, valor) primero debe verificar si un par clave / valor con la clave dada ya existe en la lista asociada con el objeto.
Si no es así, se debe agregar un nuevo par clave / valor a la lista, con la clave dada y con su valor establecido en valor.
Si la clave dada existe en la lista, y su valor no es igual al valor, entonces debe tener su valor actualizado a valor. Si su valor anterior es igual al valor, entonces el método no debe hacer nada.
En las normas, las palabras como must
, shall
y may
llevan muy significados específicos. El hecho de que esté hablando de lo que debe hacer el método significa que el método en sí debe hacerlo, no diferirlo en algún momento posterior.
Esto también difiere al sentido común también. Si setItem
fueran asíncronos, sería posible establecer un elemento en un valor específico y luego recuperarlo inmediatamente, obteniendo su valor anterior.
No es una nota en la parte inferior de la sección de interfaz de almacenamiento, que alude a la posibilidad de un comportamiento asíncrono:
Esta especificación no requiere que los métodos anteriores esperen hasta que los datos se hayan escrito físicamente en el disco. Solo se requiere coherencia en lo que ven los diferentes scripts que acceden a la misma lista subyacente de pares clave / valor.
Sin embargo, eso es solo en términos de lo que está escrito en el almacenamiento a largo plazo. La última oración exige que las secuencias de comandos que acceden al mismo objeto de almacenamiento sean necesarias para ver las cosas sincrónicamente.
LocalStorage
. Cuando almaceno 10 artículos, extraño 3 de ellos. Realmente creo que es asíncrono, pero cómo verificar si lo hizo. ¿Dónde tengo que agregar la devolución de llamada?
must
, shall
, may
comentario anterior RFC2119 ietf.org/rfc/rfc2119.txt~~V~~singular~~3rd
Esta pregunta ya ha sido respondida. Para cualquiera que llegue a esto en el futuro, JavaScript es sincrónico por naturaleza. Las cosas son solo asíncronas si estamos especificados para hacerlo. Debido a esto, puede asumir que todas las cosas son síncronas a menos que se especifique que son asíncronas. Esto es con javascript, no con frameworks escritos en Javascript. A veces rompen esta práctica. Al igual que NodeJs.