La setItem(key,value)funzione è asincrona?
localStorage.setItem("key",someText);
La setItem(key,value)funzione è asincrona?
localStorage.setItem("key",someText);
Risposte:
No, tutte le localStoragechiamate sono sincrone.
nbfao expdal token di autenticazione.
In realtà. l'archiviazione web non fa più parte dello standard di base HTML5, è stata suddivisa.
La specifica (bozza) pertinente può essere trovata qui e l'unica cosa che noterai è che non menziona sincrono o asincrono da nessuna parte.
Tuttavia, l'analisi del testo suggerirebbe che deve essere sincrono (il mio grassetto):
Il metodo setItem (key, value) deve prima controllare se una coppia chiave / valore con la chiave specificata esiste già nell'elenco associato all'oggetto.
In caso contrario, è necessario aggiungere una nuova coppia chiave / valore all'elenco, con la chiave specificata e con il valore impostato su value.
Se la chiave specificata esiste nell'elenco e il suo valore non è uguale a value, il suo valore deve essere aggiornato a value. Se il valore precedente è uguale a value, il metodo non deve fare nulla.
In standard, parole come must, shalle mayportano molto significati specifici. Il fatto che si parli di ciò che il metodo deve fare significa che il metodo stesso deve farlo, non rimandarlo a un momento successivo.
Anche questo rimanda al buon senso. Se setItemfosse asincrono, sarebbe possibile impostare un elemento su un valore specifico quindi recuperarlo immediatamente, ottenendo il valore precedente.
C'è una nota alla fine della sezione interfaccia di memoria che accenna alla possibilità di comportamento asincrono:
Questa specifica non richiede che i metodi di cui sopra attendono fino a quando i dati non sono stati scritti fisicamente su disco. È richiesta solo la coerenza in ciò che diversi script che accedono allo stesso elenco sottostante di coppie chiave / valore vedono.
Tuttavia, questo è solo in termini di ciò che viene scritto nell'archiviazione a lungo termine. L'ultima frase impone che gli script che accedono allo stesso oggetto di archiviazione siano necessari per vedere le cose in modo sincrono.
LocalStorage. Quando immagazzino 10 articoli, ne manco 3. Credo davvero che sia asincrono, ma come verificare se è stato eseguito. dove devo aggiungere la richiamata?
must, shall, maycommento di cui sopra RFC2119 ietf.org/rfc/rfc2119.txt~~V~~singular~~3rd
Questa domanda è già stata risolta. Per chiunque arrivi a questo in futuro, javascript è sincrono per natura. Le cose sono asincrone solo se sono specificate per farlo. Per questo motivo, puoi presumere che tutte le cose siano sincrone a meno che non siano specificate come asincrone. Questo è con javascript, non framework scritti in Javascript. A volte interrompono questa pratica. Come NodeJs.