onMessage calls the callback twice, with the raw string, when the callback throws
Maintainer antworten meist innerhalb von 3 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 85/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- react-native, typescript
- Bereich
- mobile
Rechercherichtung
Beginne in packages/react-native-brownfield/src/index.ts bei ReactNativeBrownfield.onMessage und untersuche, wie Parsing-Fehler und Callback-Fehler behandelt werden. Reproduziere den Fall mit einer gültigen JSON-Nachricht und einem Callback, der einen Fehler auslöst; fertig ist es, wenn der Callback einmal mit den geparsten Daten ausgeführt wird und sein ursprünglicher Fehler sichtbar wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 552
- Forks
- 56
- Ø Merge
- 3 T. 8 Std.
- Gemergte PRs (30 T.)
- 23
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus callstack/react-native-brownfield
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
callstack/react-native-brownfield#468 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
callstack/react-native-brownfield#420 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 38/100
callstack/react-native-brownfield#406 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Common network layerEvtl. wieder frei @dratwas hat das vor 2550 Tagen übernommen, und es ist kein Pull Request offen. Offen
callstack/react-native-brownfield#23 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Add support for bottom tabsEvtl. wieder frei @krizzu hat das vor 2550 Tagen übernommen, und es ist kein Pull Request offen. Offen
callstack/react-native-brownfield#22 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 3 Tagen
Alle Issues in callstack/react-native-brownfield
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Nimblesite/SharpLsp#468 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Bundled uv is never updated and trusts the compromised eMudhra certificatesEvtl. vergeben @FabienDanieau hat das heute übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
bg_wait's blocking mode (stopOnAttention: false) is under-documented and effectively undiscoverableOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
nicobailon/pi-subagents#3019 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
db-ux-design-system/core-web#8613 ·
Maintainer antworten meist innerhalb von 1 Tag