onMessage calls the callback twice, with the raw string, when the callback throws
Les mainteneurs répondent en général sous 3 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 85/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- react-native, typescript
- Domaine
- mobile
Piste de recherche
Commencez dans packages/react-native-brownfield/src/index.ts, à ReactNativeBrownfield.onMessage, et examinez la manière dont les erreurs d’analyse et les erreurs du callback sont gérées. Reproduisez le cas avec un message JSON valide et un callback qui lève une erreur ; le travail est terminé lorsque le callback s’exécute une fois avec les données analysées et que son erreur d’origine remonte.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
ReactNativeBrownfield.onMessage in packages/react-native-brownfield/src/index.ts calls the callback inside the same try block as JSON.parse:
try {
callback({ data: JSON.parse(payload.text) });
} catch {
callback({ data: payload.text });
}
If the callback throws while it handles a valid JSON message, the catch branch runs the callback again with the unparsed string as data, and the original error is discarded.
Steps to reproduce
- Subscribe with a callback that throws, for example
ReactNativeBrownfield.onMessage(() => { throw new Error('boom'); }). - From the native host, post a JSON message such as
{"type":"login"}.
Expected behavior
The callback runs once with data set to { type: 'login' }, and the boom error surfaces.
Actual behavior
The callback runs twice: first with { type: 'login' }, then with the string '{"type":"login"}'. The boom error from the first call is swallowed. Handlers that are not idempotent run their side effects twice, and the second call usually fails with a different, misleading error.
- Langage dominant
- TypeScript
- Étoiles
- 552
- Forks
- 53
- Merge moyen
- 3 j 8 h
- PR mergées (30 j)
- 23
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de callstack/react-native-brownfield
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
callstack/react-native-brownfield#499 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
callstack/react-native-brownfield#498 ·
Les mainteneurs répondent en général sous 3 jours
-
`package:ios --add-spm-package`: allow project-declared extra XCFrameworks as binary targetsOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
callstack/react-native-brownfield#468 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
callstack/react-native-brownfield#420 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 38/100
callstack/react-native-brownfield#406 ·
Les mainteneurs répondent en général sous 3 jours
Toutes les issues de callstack/react-native-brownfield
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
getsentry/sentry-conventions#732 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
status:in-linear status:team-assigned team:nodes
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
n8n-io/n8n#41548 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
motiondivision/motion#3955 ·
Les mainteneurs répondent en général sous 1 jour
-
DQ assisgnment closing at CROuverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
equinor/prisma-decision-web#919 ·
Les mainteneurs répondent en général sous 1 jour
-
自荐 / Suggestion: Prisma ComputeOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 83/100