forEach should await the iteratorCallback
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript
- Área
- databases
Línea de trabajo
Comienza por la implementación de storage forEach y sigue cómo invoca a iteratorCallback. Confirma que la Promise devuelta espera a que finalicen las llamadas async a remove, para que un save posterior no pueda competir con clear; el payload no menciona ningún archivo ni prueba específicos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
We have a situation where we want to clear a bunch of items from storage, and then set items immediately after. We need to await the clear step before saving to prevent the clear from clearing the newly added items.
We are using forEach to iterate through storage, check each item and remove it if need be. Since remove is async we are awaiting it in the iteratorCallback and our iteratorCallback is marked as async. From the source code for storage we can see that the iteratorCallback is not awaited. This means that the forEach Promise could resolve before all the removes have completed.
Here is a sample of what our clear function is doing:
async clear() {
await this.storage.forEach(async (v, k, i) => {
if (k.startsWith(this.barcodeStorageKey) || k.startsWith(this.principleStorageKey)) {
await this.storage.remove(k);
}
});
}
We are using "@ionic/storage": "2.1.3"
- Lenguaje dominante
- TypeScript
- Estrellas
- 456
- Forks
- 97
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ionic-team/ionic-storage
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
ionic-team/ionic-storage#326 · 1 comentario ·
-
CREATE YOUR OWN LOCALSTORAGEAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
ionic-team/ionic-storage#325 · 2 comentarios ·
-
indexeddb issue on iOS 18+Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
ionic-team/ionic-storage#324 · 4 comentarios · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
ionic-team/ionic-storage#323 · 2 comentarios · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
ionic-team/ionic-storage#322 · 1 comentario · 8 reacciones ·
Todos los issues de ionic-team/ionic-storage
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
better-auth/better-auth#11723 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
area: docs difficulty: easy documentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Worker-Erstellung bricht langsame Git-Worktree-Checkouts nach 20 Sekunden abPosiblemente ocupada @KajoVanBuyten la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
AgentSystemLabs/agent-office#367 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
pierrecomputer/pierre#1187 ·
Los mantenedores suelen responder en 1 día
-
area: frontend bug
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
snapotter-hq/SnapOtter#2425 ·
Los mantenedores suelen responder en 1 día