Errors from methods returning a Promise are not bubbling up when Promise is converted to Observable
- Ngôn ngữ chính
- TypeScript
- Star
- 7.8k
- Fork
- 2.2k
- Merge trung bình
- 22 giờ 28 phút
- Pull request đã merge (30 ngày)
- 6
Mô tả
In order to achieve consistency, i want to convert methods returning Promises to Observable.
However, errors are ignored when trying to catch the error either from the method or from the caller of the method.
See the code below.
```typescript
createList(newList: NewListDTO) {
const collectionRef = collection(this.db, `lists`);
const newListDoc = addDoc(collectionRef, {
name: newList.name,
uid: newList.uid,
created_at: serverTimestamp(),
});
// return defer(async () => {
// return await newListDoc;
// });
return scheduled(newListDoc, asyncScheduler).pipe(
// FIXME: error is not being caught from firstore addDoc
catchError((err) => {
return throwError(() => err);
}),
);
}
```
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu với ví dụ createList, so sánh cách tiếp cận defer(async ...) đang được chú thích với scheduled(newListDoc, asyncScheduler) và trình xử lý catchError của nó. Tái hiện đường dẫn addDoc bị lỗi và kiểm tra xem các lỗi từ Promise có đến được cả phương thức lẫn bên gọi nó hay không. Được coi là hoàn tất khi lỗi Firestore được báo cáo lan truyền qua Observable được trả về.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- firebase, typescript
- Lĩnh vực
- database
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100