onMessage calls the callback twice, with the raw string, when the callback throws
Maintainer thường phản hồi trong vòng 3 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 85/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- react-native, typescript
- Lĩnh vực
- mobile
Hướng nghiên cứu
Bắt đầu tại packages/react-native-brownfield/src/index.ts, ở ReactNativeBrownfield.onMessage, và kiểm tra cách xử lý lỗi phân tích cú pháp và lỗi callback. Tái hiện bằng một thông điệp JSON hợp lệ và một callback gây ra lỗi; coi như hoàn thành khi callback chạy một lần với dữ liệu đã phân tích và lỗi ban đầu của nó được truyền ra.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- TypeScript
- Star
- 552
- Fork
- 56
- Merge trung bình
- 3 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 23
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của callstack/react-native-brownfield
-
`package:ios --add-spm-package`: allow project-declared extra XCFrameworks as binary targetsĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
callstack/react-native-brownfield#468 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
callstack/react-native-brownfield#420 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 38/100
callstack/react-native-brownfield#406 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Common network layerCó thể làm lại được @dratwas đã nhận 2549 ngày trước và không có pull request nào đang mở. Đang mở
callstack/react-native-brownfield#23 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Add support for bottom tabsCó thể làm lại được @krizzu đã nhận 2549 ngày trước và không có pull request nào đang mở. Đang mở
callstack/react-native-brownfield#22 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 3 ngày
Tất cả issue của callstack/react-native-brownfield
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
maniator/verticopolis#1303 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
components-web-app/docs#297 ·
-
listFeatures/getFeatureExamples never return Kotlin examples for Android or server Kotlin SDKsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
appwrite/mcp-for-docs#23 · 1 bình luận ·
-
`@vanilla-extract/turbopack-plugin`: "getImageSize is not a function" with Next.js 16.4.x when a `.css.ts` file imports an imageCó thể đã có người làm @aevarOrigo đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
vanilla-extract-css/vanilla-extract#1799 · 1 bình luận ·
-
native
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
prime-radiant-inc/evener#4839 ·
Maintainer thường phản hồi trong vòng 1 ngày